in validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/validation/ModelValidationPhaseListener.java [306:373]
private FacesMessageHolder createFacesMessageHolderForConstraintViolation(final ConstraintViolation violation,
ModelValidationEntry modelValidationEntry,
final Object validationTarget,
boolean displayAtComponent)
{
final String newViolationMessage = tryToChangeViolationMessage(
modelValidationEntry, validationTarget, violation);
ConstraintViolation newConstraintViolation = new ConstraintViolation()
{
private ConstraintViolation wrapped = violation;
public String getMessage()
{
return newViolationMessage;
}
public String getMessageTemplate()
{
return wrapped.getMessageTemplate();
}
public Object getRootBean()
{
return wrapped.getRootBean();
}
public Class getRootBeanClass()
{
return wrapped.getRootBeanClass();
}
public Object getLeafBean()
{
return wrapped.getLeafBean();
}
public Path getPropertyPath()
{
return wrapped.getPropertyPath();
}
public Object getInvalidValue()
{
return wrapped.getInvalidValue();
}
public ConstraintDescriptor getConstraintDescriptor()
{
return wrapped.getConstraintDescriptor();
}
};
UIComponent uiComponent = null;
String clientId = null;
if (displayAtComponent)
{
uiComponent = modelValidationEntry.getComponent();
clientId = uiComponent.getClientId(FacesContext.getCurrentInstance());
}
FacesMessageHolder result = new FacesMessageHolder(BeanValidationUtils
.createFacesMessageForConstraintViolation(uiComponent, validationTarget, newConstraintViolation));
result.setClientId(clientId);
return result;
}