Class SimpleNode

  • All Implemented Interfaces:
    Node
    Direct Known Subclasses:
    JexlNode

    public class SimpleNode
    extends java.lang.Object
    implements Node
    A class originally generated by JJTree with the following JavaCCOptions: MULTI=true,NODE_USES_PARSER=true,VISITOR=true,TRACK_TOKENS=false,NODE_PREFIX=AST,NODE_EXTENDS=,NODE_FACTORY= Works around issue https://javacc.dev.java.net/issues/show_bug.cgi?id=227 As soon as this issue if fixed and the maven plugin uses the correct version of Javacc, this class can go away. The technical goal is to ensure every reference made in the parser was to a JexlNode; unfortunately, as in javacc 4.1, it still uses a SimpleNode reference in the generated ParserVisitor. Besides, there is no need to keep the parser around in the node. The functional goal is to a allow a volatile value in the node so it can serve as a last evaluation cache even in multi-threaded executions.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected JexlNode[] children
      The array of children nodes.
      protected int id
      The node type id.
      protected JexlNode parent
      The parent node.
      protected java.lang.Object value
      volatile value so it can be used as a last evaluation cache.
    • Constructor Summary

      Constructors 
      Constructor Description
      SimpleNode​(int i)
      Creates a SimpleNode instance.
      SimpleNode​(Parser p, int i)
      Creates a SimpleNode instance.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object childrenAccept​(ParserVisitor visitor, java.lang.Object data)
      Accept the visitor on all this node's children.
      void dump​(java.lang.String prefix)  
      java.lang.Object jjtAccept​(ParserVisitor visitor, java.lang.Object data)
      Accept the visitor.
      void jjtAddChild​(Node n, int i)
      Adds a child node.
      void jjtClose()
      This method is called after all the child nodes have been added.
      JexlNode jjtGetChild​(int i)
      Gets a child of this node.
      int jjtGetNumChildren()
      Gets this node number of children.
      JexlNode jjtGetParent()
      Gets this node's parent.
      java.lang.Object jjtGetValue()
      Gets this node value.
      void jjtOpen()
      This method is called after the node has been made the current node.
      void jjtSetParent​(Node n)
      Sets this node's parent.
      void jjtSetValue​(java.lang.Object value)
      Sets this node value.
      java.lang.String toString()  
      java.lang.String toString​(java.lang.String prefix)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • parent

        protected JexlNode parent
        The parent node.
      • children

        protected JexlNode[] children
        The array of children nodes.
      • id

        protected final int id
        The node type id.
      • value

        protected volatile java.lang.Object value
        volatile value so it can be used as a last evaluation cache.
    • Constructor Detail

      • SimpleNode

        public SimpleNode​(int i)
        Creates a SimpleNode instance.
        Parameters:
        i - the node type identifier
      • SimpleNode

        public SimpleNode​(Parser p,
                          int i)
        Creates a SimpleNode instance.
        Parameters:
        p - the parser instance
        i - the node type identifier
    • Method Detail

      • jjtOpen

        public void jjtOpen()
        This method is called after the node has been made the current node. It indicates that child nodes can now be added to it.
        Specified by:
        jjtOpen in interface Node
      • jjtClose

        public void jjtClose()
        This method is called after all the child nodes have been added.
        Specified by:
        jjtClose in interface Node
      • jjtSetParent

        public void jjtSetParent​(Node n)
        Sets this node's parent.
        Specified by:
        jjtSetParent in interface Node
        Parameters:
        n - the parent
      • jjtGetParent

        public JexlNode jjtGetParent()
        Gets this node's parent.
        Specified by:
        jjtGetParent in interface Node
        Returns:
        the parent node
      • jjtAddChild

        public void jjtAddChild​(Node n,
                                int i)
        Adds a child node.
        Specified by:
        jjtAddChild in interface Node
        Parameters:
        n - the child node
        i - the child offset
      • jjtGetChild

        public JexlNode jjtGetChild​(int i)
        Gets a child of this node.
        Specified by:
        jjtGetChild in interface Node
        Parameters:
        i - the child offset
        Returns:
        the child node
      • jjtGetNumChildren

        public int jjtGetNumChildren()
        Gets this node number of children.
        Specified by:
        jjtGetNumChildren in interface Node
        Returns:
        the number of children
      • jjtSetValue

        public void jjtSetValue​(java.lang.Object value)
        Sets this node value.
        Parameters:
        value -
      • jjtGetValue

        public java.lang.Object jjtGetValue()
        Gets this node value.
        Returns:
        value
      • jjtAccept

        public java.lang.Object jjtAccept​(ParserVisitor visitor,
                                          java.lang.Object data)
        Accept the visitor.
        Specified by:
        jjtAccept in interface Node
        Parameters:
        visitor - the visitor
        data - contextual data
        Returns:
        result of visit
      • childrenAccept

        public java.lang.Object childrenAccept​(ParserVisitor visitor,
                                               java.lang.Object data)
        Accept the visitor on all this node's children.
        Parameters:
        visitor - the visitor
        data - contextual data
        Returns:
        result of visit
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • toString

        public java.lang.String toString​(java.lang.String prefix)
      • dump

        public void dump​(java.lang.String prefix)