java.lang.Object
edu.internet2.middleware.grouperClientExt.org.apache.commons.jexl2.parser.SimpleNode
All Implemented Interfaces:
Node
Direct Known Subclasses:
JexlNode

public class SimpleNode extends 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 Details

    • 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 Object value
      volatile value so it can be used as a last evaluation cache.
  • Constructor Details

    • 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 Details

    • 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(Object value)
      Sets this node value.
      Parameters:
      value -
    • jjtGetValue

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

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

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

      public String toString()
      Overrides:
      toString in class Object
    • toString

      public String toString(String prefix)
    • dump

      public void dump(String prefix)