Class TagAttribute

  • Direct Known Subclasses:
    TagAttributeImpl

    public abstract class TagAttribute
    extends Object

    Representation of an XML attribute name=value pair on an XML element in a Facelet file.

    Since:
    2.0
    • Constructor Detail

      • TagAttribute

        public TagAttribute()
    • Method Detail

      • getLocalName

        public abstract String getLocalName()
        Local name of this attribute
        Returns:
        local name of this attribute
      • getLocation

        public abstract Location getLocation()
        The location of this attribute in the FaceletContext
        Returns:
        the TagAttribute's location
      • getMethodExpression

        public abstract jakarta.el.MethodExpression getMethodExpression​(FaceletContext ctx,
                                                                        Class type,
                                                                        Class[] paramTypes)
        Create a MethodExpression, using this attribute's value as the expression String.
        Parameters:
        ctx - FaceletContext to use
        type - expected return type
        paramTypes - parameter type
        Returns:
        a MethodExpression instance
        See Also:
        ExpressionFactory.createMethodExpression(jakarta.el.ELContext, java.lang.String, java.lang.Class, java.lang.Class[]), MethodExpression
      • getNamespace

        public abstract String getNamespace()
        The resolved Namespace for this attribute
        Returns:
        resolved Namespace
      • getObject

        public abstract Object getObject​(FaceletContext ctx)
        Delegates to getObject with Object.class as a param
        Parameters:
        ctx - FaceletContext to use
        Returns:
        Object representation of this attribute's value
        See Also:
        getObject(FaceletContext, Class)
      • getQName

        public abstract String getQName()
        The qualified name for this attribute
        Returns:
        the qualified name for this attribute
      • getValue

        public abstract String getValue()
        Return the literal value of this attribute
        Returns:
        literal value
      • getValue

        public abstract String getValue​(FaceletContext ctx)
        If literal, then return our value, otherwise delegate to getObject, passing String.class.
        Parameters:
        ctx - FaceletContext to use
        Returns:
        String value of this attribute
        See Also:
        getObject(FaceletContext, Class)
      • getObject

        public abstract Object getObject​(FaceletContext ctx,
                                         Class type)
        If literal, simply coerce our String literal value using an ExpressionFactory, otherwise create a ValueExpression and evaluate it.
        Parameters:
        ctx - FaceletContext to use
        type - expected return type
        Returns:
        Object value of this attribute
        See Also:
        ExpressionFactory.coerceToType(java.lang.Object, java.lang.Class), ExpressionFactory.createValueExpression(jakarta.el.ELContext, java.lang.String, java.lang.Class), ValueExpression
      • getValueExpression

        public abstract jakarta.el.ValueExpression getValueExpression​(FaceletContext ctx,
                                                                      Class type)
        Create a ValueExpression, using this attribute's literal value and the passed expected type.
        Parameters:
        ctx - FaceletContext to use.
        type - expected return type.
        Returns:
        the ValueExpression.
        See Also:
        ExpressionFactory.createValueExpression(jakarta.el.ELContext, java.lang.String, java.lang.Class), ValueExpression
      • isLiteral

        public abstract boolean isLiteral()
        If this TagAttribute is literal (not #{..} or ${..})
        Returns:
        true if this attribute is literal.
      • getTag

        public Tag getTag()

        A reference to the Tag for which this class represents the attributes. For compatibility with previous implementations, an implementation is provided that returns null.

        Returns:
        the Tag for which this class represents the attributes.
        Since:
        2.2
      • setTag

        public void setTag​(Tag tag)

        Set a reference to the Tag for which this class represents the attributes. The VDL runtime must ensure that this method is called before any FaceletHandlers for this element are instantiated. For compatibility with previous implementations, a no-op implementation is provided.

        Parameters:
        tag - the tag we represent.
        Since:
        2.2