Class 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 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.
    • Constructor Detail

      • Node

        public Node​(NodeType nodeType)
      • Node

        public Node​(NodeType nodeType,
                    java.lang.Object nodeValue)
    • 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)
      • 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 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 class java.lang.Object
        Returns:
        the node tree as a string
      • clone

        public Node clone​(Node parent)
      • 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