Class Node
- java.lang.Object
-
- org.datanucleus.store.query.compiler.Node
-
- Direct Known Subclasses:
ParameterNode
public class Node extends java.lang.Object
Representation of a node in a tree of nodes. Has a parent, and a list of children. Each node has a type and a value. Optionally has a set of properties; these represent arguments when part of a method call.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<Node>
childNodes
List of child nodes in the tree below here.private int
cursorPos
Working variable used for iterating between child nodes.protected NodeType
nodeType
Type of node.protected java.lang.Object
nodeValue
Value of the node.protected Node
parent
Parent of this node.private java.util.List<Node>
properties
List of properties for the node.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addProperty(Node node)
Node
appendChildNode(Node node)
Node
clone(Node parent)
Node
getChildNode(int index)
java.util.List<Node>
getChildNodes()
Node
getFirstChild()
Access the first child node.Node
getNextChild()
Access the next node.java.lang.String
getNodeChildId()
java.lang.String
getNodeId()
NodeType
getNodeType()
java.lang.Object
getNodeValue()
java.lang.String
getNodeValueAsString()
Node
getParent()
java.util.List<Node>
getProperties()
boolean
hasNextChild()
Return whether there is a "next" child node.boolean
hasProperties()
private java.lang.String
indent(int indentation)
Utility to add on indenting when printing out the node tree.Node
insertChildNode(Node node)
Node
insertChildNode(Node node, int position)
private java.lang.String
printTree(int indentation)
Utility method to print out the node tree.void
removeChildNode(Node node)
void
setNodeValue(java.lang.Object val)
void
setParent(Node parent)
void
setPropertyAtPosition(int position, Node node)
java.lang.String
toString()
Method to print out the Node as a tree.
-
-
-
Field Detail
-
nodeType
protected NodeType nodeType
Type of node.
-
nodeValue
protected java.lang.Object nodeValue
Value of the node.
-
cursorPos
private int cursorPos
Working variable used for iterating between child nodes.
-
parent
protected Node parent
Parent of this node.
-
childNodes
protected java.util.List<Node> childNodes
List of child nodes in the tree below here.
-
properties
private java.util.List<Node> properties
List of properties for the node. Used for invocation of methods, representing the arguments.
-
-
Method Detail
-
getNodeType
public NodeType getNodeType()
-
setNodeValue
public void setNodeValue(java.lang.Object val)
-
getNodeValue
public java.lang.Object getNodeValue()
-
getNodeValueAsString
public java.lang.String getNodeValueAsString()
-
hasProperties
public boolean hasProperties()
-
getProperties
public java.util.List<Node> getProperties()
-
addProperty
public void addProperty(Node node)
-
setPropertyAtPosition
public void setPropertyAtPosition(int position, Node node)
-
getChildNodes
public java.util.List<Node> getChildNodes()
-
removeChildNode
public void removeChildNode(Node node)
-
getChildNode
public Node getChildNode(int index)
-
getFirstChild
public Node getFirstChild()
Access the first child node.- Returns:
- The first node, or null if no children present
-
getNextChild
public Node getNextChild()
Access the next node. This asssumes that the methodgetFirstChild
has been called before.- Returns:
- The next child
-
hasNextChild
public boolean hasNextChild()
Return whether there is a "next" child node. Assumes that the methodgetFirstChild
has been called before.- Returns:
- Whether there is a next child node.
-
setParent
public void setParent(Node parent)
-
getParent
public Node getParent()
-
getNodeId
public java.lang.String getNodeId()
-
getNodeChildId
public java.lang.String getNodeChildId()
-
toString
public java.lang.String toString()
Method to print out the Node as a tree.- Overrides:
toString
in classjava.lang.Object
- Returns:
- the node tree as a string
-
printTree
private java.lang.String printTree(int indentation)
Utility method to print out the node tree.- Parameters:
indentation
- What indent to use- Returns:
- The tree string
-
indent
private java.lang.String indent(int indentation)
Utility to add on indenting when printing out the node tree.- Parameters:
indentation
- The indent size (number of spaces)- Returns:
- value indented
-
-