Class AstProperty

    • Field Detail

      • prefix

        protected final AstNode prefix
      • lvalue

        protected final boolean lvalue
      • strict

        protected final boolean strict
      • ignoreReturnType

        protected final boolean ignoreReturnType
    • Constructor Detail

      • AstProperty

        public AstProperty​(AstNode prefix,
                           boolean lvalue,
                           boolean strict)
      • AstProperty

        public AstProperty​(AstNode prefix,
                           boolean lvalue,
                           boolean strict,
                           boolean ignoreReturnType)
    • Method Detail

      • getProperty

        protected abstract java.lang.Object getProperty​(Bindings bindings,
                                                        javax.el.ELContext context)
                                                 throws javax.el.ELException
        Throws:
        javax.el.ELException
      • getPrefix

        protected AstNode getPrefix()
      • getValueReference

        public javax.el.ValueReference getValueReference​(Bindings bindings,
                                                         javax.el.ELContext context)
        Description copied from interface: ExpressionNode
        Get value reference.
        Returns:
        value reference
      • eval

        public java.lang.Object eval​(Bindings bindings,
                                     javax.el.ELContext context)
        Specified by:
        eval in class AstNode
      • isLiteralText

        public final boolean isLiteralText()
        Returns:
        true if this node represents literal text
      • isLeftValue

        public final boolean isLeftValue()
        Returns:
        true if the subtree rooted at this node could be used as an lvalue expression (identifier or property sequence with non-literal prefix).
      • isMethodInvocation

        public boolean isMethodInvocation()
        Returns:
        true if the subtree rooted at this node is a method invocation.
      • getType

        public java.lang.Class<?> getType​(Bindings bindings,
                                          javax.el.ELContext context)
        Description copied from interface: ExpressionNode
        Parameters:
        bindings - bindings containing variables and functions
        context - evaluation context
        Returns:
        accepted type or null for non-lvalue nodes
      • isReadOnly

        public boolean isReadOnly​(Bindings bindings,
                                  javax.el.ELContext context)
                           throws javax.el.ELException
        Description copied from interface: ExpressionNode
        Determine whether ExpressionNode.setValue(Bindings, ELContext, Object) will throw a PropertyNotWritableException.
        Parameters:
        bindings - bindings containing variables and functions
        context - evaluation context
        Returns:
        true if this a read-only expression node
        Throws:
        javax.el.ELException
      • setValue

        public void setValue​(Bindings bindings,
                             javax.el.ELContext context,
                             java.lang.Object value)
                      throws javax.el.ELException
        Description copied from interface: ExpressionNode
        Assign value.
        Parameters:
        bindings - bindings containing variables and functions
        context - evaluation context
        value - value to set
        Throws:
        javax.el.ELException
      • findMethod

        protected java.lang.reflect.Method findMethod​(java.lang.String name,
                                                      java.lang.Class<?> clazz,
                                                      java.lang.Class<?> returnType,
                                                      java.lang.Class<?>[] paramTypes)
      • getMethodInfo

        public javax.el.MethodInfo getMethodInfo​(Bindings bindings,
                                                 javax.el.ELContext context,
                                                 java.lang.Class<?> returnType,
                                                 java.lang.Class<?>[] paramTypes)
        Description copied from interface: ExpressionNode
        Get method information. If this is a non-lvalue node, answer null.
        Parameters:
        bindings - bindings containing variables and functions
        context - evaluation context
        returnType - expected method return type (may be null meaning don't care)
        paramTypes - expected method argument types
        Returns:
        method information or null
      • invoke

        public java.lang.Object invoke​(Bindings bindings,
                                       javax.el.ELContext context,
                                       java.lang.Class<?> returnType,
                                       java.lang.Class<?>[] paramTypes,
                                       java.lang.Object[] paramValues)
        Description copied from interface: ExpressionNode
        Invoke method.
        Parameters:
        bindings - bindings containing variables and functions
        context - evaluation context
        returnType - expected method return type (may be null meaning don't care)
        paramTypes - expected method argument types
        paramValues - parameter values
        Returns:
        result of the method invocation
      • getChild

        public AstNode getChild​(int i)
        Description copied from interface: Node
        Get i'th child