litesoft
@ 724
litesoft / trunk / GWT_Sandbox / FormEngine / src / com / temp / shared / validators / IdentifierValueValidator.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
package com.temp.shared.validators; import org.litesoft.core.util.externalization.*; import com.temp.shared.*; import com.temp.shared.utils.*; public class IdentifierValueValidator implements ValueValidator<String> { public static final String TEMPLATE_ID_CODE = "NotIdentifier"; public static final String TEMPLATE_NAME_WHY = "why"; public static final String SUBTEMPLATE_WHY_EMPTY_STRING = "EmptyString"; public static final String SUBTEMPLATE_WHY_BAD_CHAR = "BadCharacter"; public static final String USER_DATA_POSITION = "position"; public static final String USER_DATA_CHAR = "character"; public static final ValueValidator<String> INSTANCE = new IdentifierValueValidator(); private IdentifierValueValidator() { } @Override public E13nData checkValue( String value ) { String userData = StringUtils.deNull( value ).trim(); if ( userData.length() == 0 ) { return new E13nData( TEMPLATE_ID_CODE ).addSubstitutionNamedSubTemplateIdCode( TEMPLATE_NAME_WHY, SUBTEMPLATE_WHY_EMPTY_STRING ); } int errorIndex = StringUtils.checkIdentifier( userData ); if ( errorIndex == -1 ) { return null; // OK! } return new E13nData( TEMPLATE_ID_CODE ).addSubstitutionNamedSubTemplateIdCode( TEMPLATE_NAME_WHY, SUBTEMPLATE_WHY_BAD_CHAR ) // .addSubstitutionNamedUserData( USER_DATA_POSITION, Integer.toString( errorIndex + 1 ) ) // .addSubstitutionNamedUserData( USER_DATA_CHAR, Character.toString( userData.charAt( errorIndex ) ) ); } } |