// Determines whether or not the string represents<br />
// a suffix.<br />
boolean isSuffix( String value )<br />
{<br />
session.log( "Determining whether or not this is a suffix: " + value );<br />
value = value.toUpperCase();<br />
returnVal = (<br />
value.indexOf( "JR" )!=-1<br />
||<br />
value.indexOf( "SR" )!=-1<br />
||<br />
value.equals( "I" )<br />
||<br />
value.equals( "II" )<br />
||<br />
value.equals( "III" )<br />
||<br />
value.equals( "3RD" )<br />
||<br />
value.equals( "IV" )<br />
||<br />
value.equals( "V" )<br />
||<br />
value.equals( "VI" )<br />
||<br />
value.equals( "VII" )<br />
);<br />
session.log( "Suffix test returning: " + returnVal );<br />
return returnVal;<br />
}<br />
<br />
fixName( String name )<br />
{<br />
name = name.replaceAll(",", "").trim();<br />
return name;<br />
}<br />
<br />
name = dataRecord.get("NAME");<br />
name = name.replaceAll(" ", " ");<br />
name = name.replaceAll("\\.", "");<br />
name = name.replaceAll(";", " ");<br />
name = name.replaceAll("[ ]{2,}", " ").trim();<br />
lastName = "";<br />
firstName = "";<br />
middleName = "";<br />
suffix = "";<br />
<br />
session.log( "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" );<br />
session.log( "NAME: " + name );<br />
session.log( "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" );<br />
<br />
// Split on the space.<br />
nameParts = name.split( " " );<br />
<br />
// Send the parts to the log.<br />
for( int i = 0; i < nameParts.length; i++ )<br />
{<br />
session.log( "Name part #" + i + ": " + nameParts[i] );<br />
}<br />
<br />
// If the first part has a comma we assume it's the last name.<br />
if( nameParts.length > 1 && nameParts[0].indexOf( "," )!=-1 )<br />
{<br />
session.log( "The first name part has a comma." );<br />
<br />
// If we have two elements we assume the order is<br />
// last name, first name.<br />
if( nameParts.length==2 )<br />
{<br />
lastName = fixName(nameParts[0]);<br />
firstName = fixName(nameParts[1]);<br />
}<br />
<br />
// If we have three elements we assume the order is<br />
// either last name, first name, middle name or<br />
// last name, first name suffix.<br />
else if( nameParts.length==3 )<br />
{<br />
if( !isSuffix( nameParts[2] ) )<br />
{<br />
lastName = fixName(nameParts[0]);<br />
firstName = fixName(nameParts[1]);<br />
middleName = fixName(nameParts[2]);<br />
}<br />
else<br />
{<br />
lastName = fixName(nameParts[0]);<br />
firstName = fixName(nameParts[1]);<br />
suffix = fixName(nameParts[2]);<br />
}<br />
}<br />
<br />
else if( nameParts.length==4 )<br />
{<br />
// It will either be last name, first name middle name middle name or<br />
// last name, first name middle name suffix.<br />
if( !isSuffix( nameParts[3] ) )<br />
{<br />
lastName = fixName(nameParts[0]);<br />
firstName = fixName(nameParts[1]);<br />
middleName = fixName(nameParts[2]) + " " + fixName(nameParts[3]);<br />
}<br />
else<br />
{<br />
lastName = fixName(nameParts[0]);<br />
firstName = fixName(nameParts[1]);<br />
middleName = fixName(nameParts[2]);<br />
suffix = fixName(nameParts[3]);<br />
}<br />
} <br />
}<br />
// If we have four parts and no comma it's either First Name Middle Name Middle Name Last Name or<br />
// First Name Middle Name Last Name Suffix.<br />
else if( nameParts.length==4 )<br />
{<br />
session.log( "The name has four elements." );<br />
<br />
if( !isSuffix( nameParts[3] ) )<br />
{<br />
firstName = fixName(nameParts[0]);<br />
middleName = fixName(nameParts[1]) + " " + fixName(nameParts[2]);<br />
lastName = fixName(nameParts[3]);<br />
}<br />
else<br />
{<br />
firstName = fixName(nameParts[0]);<br />
middleName = fixName(nameParts[1]);<br />
lastName = fixName(nameParts[2]);<br />
suffix = fixName(nameParts[3]);<br />
}<br />
}<br />
// If we have three parts and no comma it's either First Name Middle Name Last Name or<br />
// First Name Last Name Suffix.<br />
else if( nameParts.length==3 )<br />
{<br />
session.log( "The name has three elements." );<br />
<br />
if( !isSuffix( nameParts[2] ) )<br />
{<br />
firstName = fixName(nameParts[0]);<br />
middleName = fixName(nameParts[1]);<br />
lastName = fixName(nameParts[2]);<br />
}<br />
else<br />
{<br />
firstName = fixName(nameParts[0]);<br />
lastName = fixName(nameParts[1]);<br />
suffix = fixName(nameParts[2]);<br />
}<br />
}<br />
// If the first part doesn't have a comma we assume the first<br />
// name is given first.<br />
else<br />
{<br />
// If we have only two parts we assume first name then last name.<br />
if( nameParts.length==2 )<br />
{<br />
firstName = fixName(nameParts[0]);<br />
middleName = "";<br />
lastName = fixName(nameParts[1]);<br />
}<br />
}<br />
<br />
session.log( "####################################################" );<br />
session.log( "FIRST NAME: " + firstName );<br />
session.log( "MIDDLE NAME: " + middleName );<br />
session.log( "LAST NAME: " + lastName );<br />
session.log( "SUFFIX: " + suffix );<br />
session.log( "####################################################" );<br />
<br />
dataRecord.put( "FNAME", firstName );<br />
dataRecord.put( "MNAME", middleName );<br />
dataRecord.put( "LNAME", lastName );<br />
dataRecord.put( "SUFFIX", suffix );