public class EmailAddress
implements Serializable
{
String emailAddress;
FormattedDate lastUpdate;
private Boolean invalidIndicator;
public EmailAddress(String newEmailAddress, FormattedDate newLastUpdate)
{
this.emailAddress = newEmailAddress;
this.lastUpdate = newLastUpdate;
}
public EmailAddress(String newEmailAddress, Date newLastUpdate)
{
this(newEmailAddress, new FormattedDate(newLastUpdate));
}
public EmailAddress(String newEmailAddress)
{
this.emailAddress = newEmailAddress;
}
public String getEmailAddress()
{
return this.emailAddress;
}
public FormattedDate getLastUpdate()
{
return this.lastUpdate;
}
public String getLastUpdateFormatted()
{
return this.lastUpdate.getDateFormatted();
}
public Boolean getInvalidIndicator() {
return this.invalidIndicator;
}
public void setInvalidIndicator(Boolean invalidIndicator) {
this.invalidIndicator = invalidIndicator;
}
public static boolean validate(String email)
{
if (email != null) {
StringBuffer sb = new StringBuffer(email.trim());
if (sb.length() > 0) {
int idx = email.indexOf('@');
if (idx < 0) {
return false;
}
}
}
return true;
}
public static boolean validate2(String email)
{
boolean flag = true;
if (email != null) {
int idx = email.indexOf("@");
if ((idx == -1) || (email.indexOf("@", idx + 1) != -1))
flag = false;
else if (email.indexOf(".") == -1)
flag = false;
else if (email.indexOf(",") != -1)
flag = false;
else if (email.indexOf(";") != -1)
flag = false;
else if (email.length() < 5)
flag = false;
else if (email.indexOf(" ") != -1) {
flag = false;
}
else if (!validCharAfterAtSign(email))
flag = false;
else if (!validLastChar(email))
flag = false;
else if (idx == 0)
flag = false;
}
else
{
flag = false;
}
return flag;
}
public String toString()
{
return new StringBuilder().append("EmailAddress: emailAddress=(").append(this.emailAddress == null ? "null" : this.emailAddress).append(") ").append("lastUpdate=(").append(this.lastUpdate == null ? "null" : getLastUpdateFormatted()).append(") ").append("invalidIndicator=(").append(this.invalidIndicator).append(")").toString();
}
private static boolean validCharAfterAtSign(String str)
{
int idx = str.indexOf("@");
for (int i = idx + 1; i < str.length(); i++) {
int charInt = str.charAt(i);
if ((charInt != 45) && (charInt != 46) && ((charInt < 48) || (charInt > 57)) && ((charInt < 65) || (charInt > 90)) && ((charInt < 97) || (charInt > 122)))
{
return false;
}
}
return true;
}
private static boolean validLastChar(String str) {
int charInt = str.charAt(str.length() - 1);
return ((charInt >= 48) && (charInt <= 57)) || ((charInt >= 65) && (charInt <= 90)) || ((charInt >= 97) && (charInt <= 122));
}
}