java.lang.Object
org.datanucleus.store.query.compiler.Node
Direct Known Subclasses:
ParameterNode

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

    • nodeType

      protected NodeType nodeType
      Type of node.
    • nodeValue

      protected 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 List<Node> childNodes
      List of child nodes in the tree below here.
    • properties

      private List<Node> properties
      List of properties for the node. Used for invocation of methods, representing the arguments.
  • Constructor Details

  • Method Details

    • getNodeType

      public NodeType getNodeType()
    • setNodeValue

      public void setNodeValue(Object val)
    • getNodeValue

      public Object getNodeValue()
    • getNodeValueAsString

      public String getNodeValueAsString()
    • hasProperties

      public boolean hasProperties()
    • getProperties

      public List<Node> getProperties()
    • addProperty

      public void addProperty(Node node)
    • setPropertyAtPosition

      public void setPropertyAtPosition(int position, Node node)
    • getChildNodes

      public List<Node> getChildNodes()
    • removeChildNode

      public void removeChildNode(Node node)
    • insertChildNode

      public Node insertChildNode(Node node)
    • insertChildNode

      public Node insertChildNode(Node node, int position)
    • appendChildNode

      public Node appendChildNode(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 method
      getFirstChild
      has been called before.
      Returns:
      The next child
    • hasNextChild

      public boolean hasNextChild()
      Return whether there is a "next" child node. Assumes that the method
      getFirstChild
      has been called before.
      Returns:
      Whether there is a next child node.
    • setParent

      public void setParent(Node parent)
    • getParent

      public Node getParent()
    • getNodeId

      public String getNodeId()
    • getNodeChildId

      public String getNodeChildId()
    • toString

      public String toString()
      Method to print out the Node as a tree.
      Overrides:
      toString in class Object
      Returns:
      the node tree as a string
    • clone

      public Node clone(Node parent)
    • printTree

      private String printTree(int indentation)
      Utility method to print out the node tree.
      Parameters:
      indentation - What indent to use
      Returns:
      The tree string
    • indent

      private 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