public Metadata applyRule(String name, TagAttribute attribute, MetadataTarget meta) { if (meta.isTargetInstanceOf(ActionSource.class)) { boolean elSupport = FacesAPI.getComponentVersion(meta .getTargetClass()) >= 12; if ("action".equals(name)) { if (elSupport && meta.isTargetInstanceOf(ActionSource2.class)) { return new ActionMapper2(attribute); } else { return new ActionMapper(attribute); } } if ("actionListener".equals(name)) { if (elSupport && meta.isTargetInstanceOf(ActionSource2.class)) { return new ActionListenerMapper2(attribute); } else { return new ActionListenerMapper(attribute); } } } return null; } }
public Metadata applyRule(String name, TagAttribute attribute, MetadataTarget meta) { if (meta.isTargetInstanceOf(ValueHolder.class)) { if ("converter".equals(name)) { if (attribute.isLiteral()) { return new LiteralConverterMetadata(attribute.getValue()); } else { if (FacesAPI.getComponentVersion(meta.getTargetClass()) >= 12) { return new DynamicConverterMetadata2(attribute); } else { return new DynamicConverterMetadata(attribute); } } } if ("value".equals(name)) { if (attribute.isLiteral()) { return new LiteralValueMetadata(attribute.getValue()); } else { if (FacesAPI.getComponentVersion(meta.getTargetClass()) >= 12) { return new DynamicValueExpressionMetadata(attribute); } else { return new DynamicValueBindingMetadata(attribute); } } } } return null; }
public Metadata applyRule(String name, TagAttribute attribute, MetadataTarget meta) { if (meta.isTargetInstanceOf(EditableValueHolder.class)) { boolean elSupport = FacesAPI.getComponentVersion(meta .getTargetClass()) >= 12; if ("validator".equals(name)) { if (attribute.isLiteral()) { return new LiteralValidatorMetadata(attribute.getValue()); } else if (elSupport) { return new ValidatorExpressionMetadata(attribute); } else { return new ValidatorBindingMetadata(attribute); } } if ("valueChangeListener".equals(name)) { if (elSupport) { return new ValueChangedExpressionMetadata(attribute); } else { return new ValueChangedBindingMetadata(attribute); } } } return null; }
public Metadata applyRule(String name, TagAttribute attribute, MetadataTarget meta) { if (meta.isTargetInstanceOf(UIComponent.class)) { // if component and dynamic, then must set expression if (!attribute.isLiteral()) { Class type = meta.getPropertyType(name); if (type == null) { type = Object.class; } if (FacesAPI.getComponentVersion(meta.getTargetClass()) >= 12) { return new ValueExpressionMetadata(name, type, attribute); } else { return new ValueBindingMetadata(name, type, attribute); } } else if (meta.getWriteMethod(name) == null) { // this was an attribute literal, but not property warnAttr(attribute, meta.getTargetClass(), name); return new LiteralAttributeMetadata(name, attribute.getValue()); } } return null; }