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
      private JexlNode[] children
      The array of children nodes.
      protected int id
      The node type id.
      private JexlNode parent
      The parent node.
      private static long serialVersionUID  
      private java.lang.Object value
      Volatile value so it can be used as a last evaluation cache.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object childrenAccept​(ParserVisitor visitor, java.lang.Object data)
      Accepts the visitor on all this node's children.
      void dump​(java.lang.String prefix)  
      protected void dumpOut​(java.lang.String str)
      Override to dump output somewhere.
      int getId()  
      java.lang.Object jjtAccept​(ParserVisitor visitor, java.lang.Object data)
      Accepts 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.
      (package private) void jjtSetChildren​(JexlNode[] jexlNodes)  
      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

        private JexlNode parent
        The parent node.
      • children

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

        protected final int id
        The node type id.
      • value

        private transient 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

        @Deprecated
        public SimpleNode​(Parser p,
                          int i)
        Deprecated.
        Constructs a SimpleNode instance.
        Parameters:
        p - not used.
        i - the node type identifier
    • Method Detail

      • childrenAccept

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

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

        protected void dumpOut​(java.lang.String str)
        Override to dump output somewhere.
        Parameters:
        str - the string to output
      • getId

        public int getId()
        Specified by:
        getId in interface Node
      • jjtAccept

        public java.lang.Object jjtAccept​(ParserVisitor visitor,
                                          java.lang.Object data)
        Accepts the visitor.
        Specified by:
        jjtAccept in interface Node
        Parameters:
        visitor - the visitor
        data - contextual data
        Returns:
        result of visit
      • 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
      • jjtClose

        public void jjtClose()
        Description copied from interface: Node
        This method is called after all the child nodes have been added.
        Specified by:
        jjtClose in interface Node
      • 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
      • jjtGetParent

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

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

        public void jjtOpen()
        Description copied from interface: Node
        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
      • jjtSetChildren

        void jjtSetChildren​(JexlNode[] jexlNodes)
      • jjtSetParent

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

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

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

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