util
Class Names2ID

java.lang.Object
  |
  +--util.Names2ID
All Implemented Interfaces:
IDObject

public class Names2ID
extends java.lang.Object
implements IDObject

assemble legal ID-string from 3 name parts (last name, first name, infix name)

verwerking van het bekende 'van de' probleem ( lang=NL ) <>infix between first and last name is common in dutch spelling folklore. infix can consist of multiple (small) words, mostly prepositions and articles.

regex example: \bvan\s+de\b; commonly abbreviated to: 'vd' in RFC822 mail-addresses

Author:
Thijs Verhagen

Field Summary
 java.lang.String firstNameID
          first name stripped of everything but letters
private  java.text.StringCharacterIterator firstNameIt
          character iterator for each contents of firstNameID
private  java.lang.String id
           
(package private) static java.lang.String idPattern
          pattern to create ID; createID pseudo grammar createID = select-letter* select-letter = letter | letter '+' | letter '*' letter = 'F' | 'I' | 'L' '+' is used to extract all first-letters; eg 'john-ross' -> 'jr' '*' is used to extract all letters single letter is used to extract 1 letter default 'F*I+L*'
 java.lang.String infixID
          infix replaced by corresponding value in Name2IDSubstitution_NL2
private  java.text.StringCharacterIterator infixIt
          character iterator for each contents of infixID
 java.lang.String lastNameID
          last name stripped of everything but letters
private  java.text.StringCharacterIterator lastNameIt
          character iterator for each contents of lastNameID
(package private) static int maxLength
          maximum length for ID default 0: unlimited
 INames names
           
private static java.lang.String[][] patternMap
          regex map used to create user ID { "F", "firstName" }, { "I", "infix" }, { "L", "lastName" }
 
Constructor Summary
Names2ID(INames param)
           
Names2ID(java.lang.String param)
          create Names2ID based on full (formatted) name if param contains ',' lastname is part of fname before comma; otherwise firstname is considered part up to first space.
Names2ID(java.lang.String ln, java.lang.String gn, java.lang.String infix)
          create Names2ID based on last- first and infix name
 
Method Summary
 java.lang.String createID()
          generate id
 java.lang.String createID(java.lang.String pattern)
          generate id based with pattern, length not limited
 java.lang.String createID(java.lang.String pattern, int length)
          assemble id according to pattern idPattern
private  java.lang.String extractChars(int mapIx, boolean all)
          extract characters as requested by createID
 java.lang.String getID()
           
static java.lang.String getIDPattern()
           
static int getMaxLength()
           
 INames getNames()
           
 void initIDNames()
           
 void setID(java.lang.String val)
           
static void setIDPattern(java.lang.String p)
           
static void setMaxLength(int i)
           
 void setNames(INames val)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

idPattern

static java.lang.String idPattern
pattern to create ID; createID pseudo grammar
          createID = select-letter*
     select-letter = letter | letter '+' | letter '*'
            letter = 'F' | 'I' | 'L'
 
default 'F*I+L*'

See Also:
createID()

maxLength

static int maxLength
maximum length for ID default 0: unlimited


names

public INames names

firstNameID

public java.lang.String firstNameID
first name stripped of everything but letters


lastNameID

public java.lang.String lastNameID
last name stripped of everything but letters


infixID

public java.lang.String infixID
infix replaced by corresponding value in Name2IDSubstitution_NL2

See Also:
#map

id

private java.lang.String id

patternMap

private static java.lang.String[][] patternMap
regex map used to create user ID


firstNameIt

private java.text.StringCharacterIterator firstNameIt
character iterator for each contents of firstNameID


infixIt

private java.text.StringCharacterIterator infixIt
character iterator for each contents of infixID


lastNameIt

private java.text.StringCharacterIterator lastNameIt
character iterator for each contents of lastNameID

Constructor Detail

Names2ID

public Names2ID(INames param)

Names2ID

public Names2ID(java.lang.String param)
create Names2ID based on full (formatted) name

if param contains ',' lastname is part of fname before comma; otherwise firstname is considered part up to first space.


Names2ID

public Names2ID(java.lang.String ln,
                java.lang.String gn,
                java.lang.String infix)
create Names2ID based on last- first and infix name

Method Detail

setIDPattern

public static void setIDPattern(java.lang.String p)

setMaxLength

public static void setMaxLength(int i)

getIDPattern

public static java.lang.String getIDPattern()

getMaxLength

public static int getMaxLength()

getID

public java.lang.String getID()
Specified by:
getID in interface IDObject

setID

public void setID(java.lang.String val)
Specified by:
setID in interface IDObject

getNames

public INames getNames()

setNames

public void setNames(INames val)

createID

public java.lang.String createID()
generate id

Returns:
String valid userid

createID

public java.lang.String createID(java.lang.String pattern)
generate id based with pattern, length not limited

Returns:
valid userid

initIDNames

public void initIDNames()

createID

public java.lang.String createID(java.lang.String pattern,
                                 int length)
assemble id according to pattern idPattern

Returns:
valid userid, create according to parameter pattern
See Also:
idPattern

extractChars

private java.lang.String extractChars(int mapIx,
                                      boolean all)
extract characters as requested by createID

Returns:
String consisting of characters as requested

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object