import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class InvalidXMLCharacterValidator extends BaseValidator implements GracieValidator {
public InvalidXMLCharacterValidator() {
}
/**
* Validation Rule: Check the input text whether it contains invalid xml characters or not
* @param inputText Input string text
* @return boolean Return true when the input text contains invalid xml characters,
* otherwise return false.
*/
public static boolean containsInvalidCharacter(String inputText) {
boolean contained = false;
String invalidXMLCharacters =
ConfigureLoader.getInstance().getConfigureLoaderPropertiesValue(FieldValidationConstants.EXT_INVALID_XML_CHARACTERS_KEY);
/*
if (invalidXMLCharacters == null) {
invalidXMLCharacters = FieldValidationConstants.INVALID_XML_CHARACTERS;
}
*/
if (!Util.isEmpty(inputText)) {
Pattern pattern = Pattern.compile(invalidXMLCharacters);
char[] array = inputText.toCharArray();
for (int i = 0; i < array.length; i++) {
Matcher matcher = pattern.matcher(String.valueOf(array[i]));
boolean isValid = matcher.matches();
if (isValid) {
contained = true;
}
}
}
return contained;
}
/**
* Validation Rule: Check the input text whether it contains invalid xml characters or not
* @param inputText Input string text
* @param fieldErrorParam Field error tag parameter
* @param fieldErrorMessage Field error message
* @return boolean Return true when the input text contains invalid xml characters,
* otherwise return false.
*/
public static boolean containsInvalidCharacter(String inputText, String fieldErrorParam, String fieldErrorMessage) {
boolean contained = InvalidXMLCharacterValidator.containsInvalidCharacter(inputText);
if (contained) {
addFieldErrorMessage(fieldErrorParam, fieldErrorMessage);
}
return contained;
}
/**
* Validation Rule: Check the input text whether it contains invalid xml characters or not
* @param inputText Input string text
* @param fieldErrorParam Field error tag parameter
* @param bundle Language property file id
* @param key Message key
* @param defaultMessage Default message
* @param arguments The arguments of message
* @return boolean Return true when the input text contains invalid xml characters,
* otherwise return false.
*/
public static boolean containsInvalidCharacter(String inputText, String fieldErrorParam,
String bundle, String key, String defaultMessage, String[] arguments) {
boolean contained = InvalidXMLCharacterValidator.containsInvalidCharacter(inputText);
if (contained) {
String fieldErrorMessage = MessageUtil.getText(bundle, key, defaultMessage, arguments);
addFieldErrorMessage(fieldErrorParam, fieldErrorMessage);
}
return contained;
}
public boolean isValid(String inputText, String fieldErrorParam, String bundle, String key, String defaultMessage, String[] arguments) {
return InvalidXMLCharacterValidator.containsInvalidCharacter(inputText, fieldErrorParam, bundle, key, defaultMessage, arguments);
}
public boolean isValid(String inputText, String fieldErrorParam, String fieldErrorMessage) {
return InvalidXMLCharacterValidator.containsInvalidCharacter(inputText, fieldErrorParam, fieldErrorMessage);
}
public boolean isValid(String inputText) {
return InvalidXMLCharacterValidator.containsInvalidCharacter(inputText);
}
public boolean isValid(String inputText, Object[] objs) {
return isValid(inputText);
}
}