package com.softwaremill.common.faces.validator;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
/**
* Common code for delegating validator
*/
public abstract class AbstractDelgatingValidator implements Validator{
protected static final String VALIDATOR_ID = "validatorId";
@Override
public void validate(FacesContext facesContext, UIComponent uiComponent, Object value) throws ValidatorException {
String validatorId = (String) uiComponent.getAttributes().get(VALIDATOR_ID);
Validator validator = lookup(facesContext, validatorId);
validator.validate(facesContext, uiComponent, value);
}
private Validator lookup(FacesContext facesContext, String validatorId) {
return facesContext.getApplication().createValidator(validatorId);
}
}