char[] buff = ((String)uiInput.getValue()).toCharArray();
if(buff.length < min || buff.length > max)
{
Object[] args = {label, min.toString(), max.toString()};
throw new MessageException(new ApplicationMessage("StringLengthValidator.msg.length-invalid", args,
ApplicationMessage.WARNING));
}
if(!isAlphabet(buff[0]))
{
Object[] args = {label};
throw new MessageException(new ApplicationMessage("FirstCharacterNameValidator.msg", args,
ApplicationMessage.WARNING));
}
if(!isAlphabetOrDigit(buff[buff.length - 1]))
{
Object[] args = {label, buff[buff.length - 1]};
throw new MessageException(new ApplicationMessage("LastCharacterUsernameValidator.msg", args,
ApplicationMessage.WARNING));
}
for(int i = 1; i < buff.length -1; i++)
{
char c = buff[i];
if (isAlphabetOrDigit(c))
{
continue;
}
if (isSymbol(c))
{
char next = buff[i + 1];
if (isSymbol(next))
{
Object[] args = {label, buff[i], buff[i + 1]};
throw new MessageException(new ApplicationMessage("ConsecutiveSymbolValidator.msg", args,
ApplicationMessage.WARNING));
}
else if (!isAlphabetOrDigit(next))
{
Object[] args = {label};
throw new MessageException(new ApplicationMessage("UsernameValidator.msg.Invalid-char", args, ApplicationMessage.WARNING));
}
}
else
{
Object[] args = {label};
throw new MessageException(new ApplicationMessage("UsernameValidator.msg.Invalid-char", args, ApplicationMessage.WARNING));
}
}
}