Package org.apache.commons.jexl3.parser
Class SimpleNode
- java.lang.Object
-
- org.apache.commons.jexl3.parser.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.
-
Constructor Summary
Constructors Constructor Description SimpleNode(int i)
Creates a SimpleNode instance.SimpleNode(Parser p, int i)
Deprecated.UseSimpleNode(int)
.
-
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)
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
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.UseSimpleNode(int)
.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 visitordata
- 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
-
jjtAccept
public java.lang.Object jjtAccept(ParserVisitor visitor, java.lang.Object data)
Accepts the visitor.
-
jjtAddChild
public void jjtAddChild(Node n, int i)
Adds a child node.- Specified by:
jjtAddChild
in interfaceNode
- Parameters:
n
- the child nodei
- the child offset
-
jjtClose
public void jjtClose()
Description copied from interface:Node
This method is called after all the child nodes have been added.
-
jjtGetChild
public JexlNode jjtGetChild(int i)
Gets a child of this node.- Specified by:
jjtGetChild
in interfaceNode
- Parameters:
i
- the child offset- Returns:
- the child node
-
jjtGetNumChildren
public int jjtGetNumChildren()
Gets this node number of children.- Specified by:
jjtGetNumChildren
in interfaceNode
- Returns:
- the number of children
-
jjtGetParent
public JexlNode jjtGetParent()
Gets this node's parent.- Specified by:
jjtGetParent
in interfaceNode
- 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.
-
jjtSetChildren
void jjtSetChildren(JexlNode[] jexlNodes)
-
jjtSetParent
public void jjtSetParent(Node n)
Sets this node's parent.- Specified by:
jjtSetParent
in interfaceNode
- 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 classjava.lang.Object
-
toString
public java.lang.String toString(java.lang.String prefix)
-
-