private void addValidators(NodeList validators, String namespace)
throws XPathExpressionException {
Application app = getApplication();
Verifier verifier = Verifier.getCurrentInstance();
for (int i = 0, size = validators.getLength(); i < size; i++) {
Node validator = validators.item(i);
NodeList children = ((Element) validator)
.getElementsByTagNameNS(namespace, "*");
String validatorId = null;
String validatorClass = null;
for (int c = 0, csize = children.getLength(); c < csize; c++) {
Node n = children.item(c);
if (n.getNodeType() == Node.ELEMENT_NODE) {
if (VALIDATOR_ID.equals(n.getLocalName())) {
validatorId = getNodeText(n);
} else if (VALIDATOR_CLASS.equals(n.getLocalName())) {
validatorClass = getNodeText(n);
}
}
}
if (validatorId != null && validatorClass != null) {
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.log(Level.FINE,
MessageFormat.format(
"Calling Application.addValidator({0},{1})",
validatorId,
validatorClass));
}
boolean doAdd = true;
if (validatorId.equals(BeanValidator.VALIDATOR_ID)) {
doAdd = ApplicationConfigProcessor.isBeanValidatorAvailable();
}
if (doAdd) {
if (verifier != null) {
verifier.validateObject(Verifier.ObjectType.VALIDATOR,
validatorClass,
Validator.class);
}
app.addValidator(validatorId, validatorClass);
}