01: package nl.knowlogy.validation.jsf.component.validator;
02:
03: import javax.faces.component.EditableValueHolder;
04: import javax.faces.component.UIComponent;
05:
06: import nl.knowlogy.validation.ValidationEngine;
07: import nl.knowlogy.validation.jsf.utils.JsfUtils;
08: import nl.knowlogy.validation.metadata.ClassMetadata;
09: import nl.knowlogy.validation.metadata.PropertyMetadata;
10:
11: public class JsfValidateUtils {
12:
13: public static void setRequiredAttribute(UIComponent component) {
14:
15: Object object = JsfUtils.getContainingObject(component);
16: String propertyName = JsfUtils.getPropertyNamePart(component);
17:
18: if (object != null) {
19: Class clazz = object.getClass();
20: ClassMetadata classMetaData = ValidationEngine
21: .getClassMetaData(clazz);
22: if (classMetaData != null) {
23: PropertyMetadata propertyMetadata = classMetaData
24: .getPropertyMetadata(propertyName);
25: if (propertyMetadata != null
26: && propertyMetadata.isRequired().booleanValue()) {
27: if (component instanceof EditableValueHolder) {
28: ((EditableValueHolder) component)
29: .setRequired(true);
30: }
31: }
32: }
33: }
34: }
35: }
|