Class NodeImpl

  • All Implemented Interfaces:
    Node

    public class NodeImpl
    extends Object
    implements Node
    • Method Detail

      • getValue

        public Object getValue()
        Specified by:
        getValue in interface Node
        Returns:
        The parsed value of the instance component.
      • setValue

        public void setValue​(Object value)
        Description copied from interface: Node
        Sets the value of the node.
        Specified by:
        setValue in interface Node
        Parameters:
        value - The new parse value.
      • hasChild

        public boolean hasChild​(String name)
        Description copied from interface: Node
        Determines if the node has a child with the specified name.
        Specified by:
        hasChild in interface Node
        Parameters:
        name - The name of a child node.
        Returns:
        true if a child node exists with the name, otehrwise false.
      • hasChild

        public boolean hasChild​(Class<?> clazz)
        Description copied from interface: Node
        Determines if the node has a child whose value is of the specified class.
        Specified by:
        hasChild in interface Node
        Parameters:
        clazz - The class of the child node value.
        Returns:
        true if a child node exists with the class, otherwise false .
      • getChildren

        public List<Node> getChildren()
        Contents of this node.

        XXX: either return unmodifeable Collection, or return the collection directly. Client code should make the copy iff they need it. Going to try changing it and see what breaks.

        Specified by:
        getChildren in interface Node
        Returns:
        A list containing objects of type Node.
        See Also:
        Node.getChildren()
      • getNChildren

        public int getNChildren()
      • getChildren

        public List<Node> getChildren​(String name)
        Description copied from interface: Node
        Returns all nodes corresponding child elements with the specified name. This method returns an empty list if it finds no nodes corresponding to the specified name.
        Specified by:
        getChildren in interface Node
        Parameters:
        name - The name of a child element.
        Returns:
        A list containing objects of type Node.
      • getChildren

        public List<Node> getChildren​(Class<?> clazz)
        Description copied from interface: Node
        Returns all nodes corresponding to child elements with the parsed values that are instances of clazz
        Specified by:
        getChildren in interface Node
        Parameters:
        clazz - The class of parsed child values.
        Returns:
        A list containing objects of type Node, such that node#getValue() is an instance of clazz, or an empty list.
      • getChild

        public Node getChild​(String name)
        Description copied from interface: Node
        Returns a node corresponding to a child element. This method returns the first such node it finds and no order is guaranteed, it is provided for convenience. This method returns null if it finds no such child node matching the specified name.
        Specified by:
        getChild in interface Node
        Parameters:
        name - The name of a child element.
        Returns:
        The first node that matches a child element with the specified name.
      • getChild

        public Node getChild​(Class<?> clazz)
        Description copied from interface: Node
        Returns a node corresponding to a child element which has a parsed value which is an instance of clazz. This method returns the first such node it finds and no order is guarenteed, it is providedd for convenience. This method returns null if it finds no such child mathing the above criteria.
        Specified by:
        getChild in interface Node
        Parameters:
        clazz - The class of the parsed value of a child element.
        Returns:
        The first node found, or null.
      • hasAttribute

        public boolean hasAttribute​(Class<?> clazz)
        Description copied from interface: Node
        Determines if the node has an attribute whose value is of the specified class.
        Specified by:
        hasAttribute in interface Node
        Parameters:
        clazz - The class of the attribute value
        Returns:
        true if an attribute exists with the class, otherwise false .
      • hasAttribute

        public boolean hasAttribute​(String name)
        Description copied from interface: Node
        Determines if the node has an attribute with the specified name.
        Specified by:
        hasAttribute in interface Node
        Parameters:
        name - The name of an attribute
        Returns:
        true if am attribute exists with the name, otehrwise false.
      • getAttributes

        public List<Node> getAttributes()
        Description copied from interface: Node
        Returns all nodes corresponding to attributes.
        Specified by:
        getAttributes in interface Node
        Returns:
        A list containing objects of type node.
      • getAttributes

        public List<Node> getAttributes​(Class<?> clazz)
        Description copied from interface: Node
        Returns all nodes corresponding to attributes which has a parsed values which are instances of clazz.
        Specified by:
        getAttributes in interface Node
        Parameters:
        clazz - The class of parsed attribute values.
        Returns:
        A list of attribute nodes whose parsed values are instances of clazz, or an empty list.
      • getNAttributes

        public int getNAttributes()
      • getAttribute

        public Node getAttribute​(String name)
        Description copied from interface: Node
        Returns the node corresonding to the attribute with the specified name. This method returns null if it finds no such attribute node matching the specified name.
        Specified by:
        getAttribute in interface Node
        Parameters:
        name - The name of the attribute.
      • getAttribute

        public Node getAttribute​(Class<?> clazz)
        Description copied from interface: Node
        Returns the node corresponding to the attribute which has a parsed value which is an instance of clazz. In the event that the node contains multple attributes matching the above criteria, the first encountered is returned, with no guaratnee of order. For all nodes matching this criteria use Node.getAttributes(Class).
        Specified by:
        getAttribute in interface Node
        Parameters:
        clazz - The class of parsed attribute values.
        Returns:
        The attribute node whose parsed value is an instance of clazz, or null if no such node exists.
      • getAttributeValue

        public Object getAttributeValue​(String name)
        Description copied from interface: Node
        Helper method for access to the parsed value of the attribute with the specified name.
        Specified by:
        getAttributeValue in interface Node
        Parameters:
        name - The name of the attribute in which to retreive the parsed value from.
        Returns:
        the parsed value of the attribute matching the criteria, or null if no such attribute is found.
      • getAttributeValue

        public Object getAttributeValue​(Class<?> clazz)
        Description copied from interface: Node
        Helper method for access to the parsed value of the attribute whose parsed value is an instance of clazz. In the event that the node contains multple attributes matching the above criteria, the first encountered is returned, with no guaratnee of order. For all values matching this criteria use Node.getAttributeValues(Class).
        Specified by:
        getAttributeValue in interface Node
        Parameters:
        clazz - The class of parsed attribute values.
        Returns:
        the parsed value of the attribute matching the criteria, or null if no such attribute is found.
      • getAttributeValues

        public List<Object> getAttributeValues​(Class<?> clazz)
        Description copied from interface: Node
        Helper method for access ot the parsed values of attribute nodes whose parsed values are instances of clazz.
        Specified by:
        getAttributeValues in interface Node
        Parameters:
        clazz - The class of parsed attribute values.
        Returns:
        The list of attribute values which are instances of clazz, or an empty list.
      • getChildValue

        public Object getChildValue​(int index)
        Description copied from interface: Node
        Helper method for access to child's parsed contents.

        Should be in the range of getChildren().size()

        Simple helper method for the contents of getChildren: return ((Node)getChildren.get( index )).getValue();

        Specified by:
        getChildValue in interface Node
        Returns:
        the value of the child at the given index
      • getChildValue

        public Object getChildValue​(String name)
        Description copied from interface: Node
        Helper method for access to child's parsed contents by element name.

        In the event that the node has multiple children matching name the first encountered is returned, there is no guarantee of order. For a list of all values matching name use Node.getChildValues(String).

        Specified by:
        getChildValue in interface Node
        Parameters:
        name - The name of the child which parsed content is to be retrieved.
        Returns:
        the value of the child with the given name, or null if the child does not exist.
      • getChildValue

        public <T> T getChildValue​(Class<T> clazz)
        Description copied from interface: Node
        Helper method for access to child's parsed contents by class.

        In the event that the node has multiple children which are instances of clazz , the first is returned, there is no guarantee of order. For a list of all values which are instances of clazz use Node.getChildValues(Class).

        Specified by:
        getChildValue in interface Node
        Parameters:
        clazz - The class of parsed child value.
        Returns:
        the value of the child which is an instance of clazz, or null if no such child exists.
      • getChildValues

        public List<Object> getChildValues​(String name)
        Description copied from interface: Node
        Helper method for access to the set of parse child values with the specified name.
        Specified by:
        getChildValues in interface Node
        Parameters:
        name - The name of the child element in which to retreive the parsed value.
        Returns:
        A list of values representing the parsed values of the children, or an empty list of no such values exist.
      • getChildValues

        public <T> List<T> getChildValues​(Class<T> clazz)
        Description copied from interface: Node
        Helper method for access to the set of parsed child values which are instances of the specified class.
        Specified by:
        getChildValues in interface Node
        Parameters:
        clazz - The class of the child values.
        Returns:
        A list of child values which are instances of class, or an empty list if no such values exist.
      • getAttributeValue

        public Object getAttributeValue​(String name,
                                        Object defaultValue)
        Description copied from interface: Node
        Helper method for access to the parsed value of the attribute with the specified name, returning a defaultValue when no such attribute is present
        Specified by:
        getAttributeValue in interface Node
        Parameters:
        name - The name of the attribute in which to retreive the parsed value from.
        defaultValue - A defaultValue to return, if no such attribute found.
        Returns:
        the parsed value of the attribute matching the criteria, or defaultValue if no such attribute is found.
      • getAttributeValue

        public Object getAttributeValue​(Class clazz,
                                        Object defaultValue)
        Description copied from interface: Node
        Helper method for access to the parsed value of the attribute whose parsed value is an instance of clazz, returning a defaultValue when no such attribute is present. In the event that the node contains multple attributes matching the above criteria, the first encountered is returned, with no guaratnee of order. For all values matching this criteria use Node.getAttributeValues(Class).
        Specified by:
        getAttributeValue in interface Node
        Parameters:
        clazz - The class of parsed attribute values.
        defaultValue - A defaultValue to return, if no such attribute found.
        Returns:
        the parsed value of the attribute matching the criteria, or defaultValue if no such attribute is found.
      • getChildValue

        public Object getChildValue​(String name,
                                    Object defaultValue)
        Description copied from interface: Node
        Helper method for access to child's parsed contents by element name.returning a defaultValue when no such value is present

        In the event that the node has multiple children mathing name the first encountered is returned, there is no guarantee of order. For a list of all values matching name use Node.getChildValues(String).

        Specified by:
        getChildValue in interface Node
        Parameters:
        name - The name of the child which parsed content is to be retrived.
        defaultValue - A defaultValue to return, if no such child found.
        Returns:
        the value of the child with the given name, or defaultValue if the child does not exist.
      • getChildValue

        public <T> T getChildValue​(Class<T> clazz,
                                   T defaultValue)
        Description copied from interface: Node
        Helper method for access to child's parsed contents by class, returning a defaultValue when no such value is present

        In the event that the node has multiple children which are instances of clazz , the first is returned, there is no guarantee of order. For a list of all values which are instances of clazz use Node.getChildValues(Class).

        Specified by:
        getChildValue in interface Node
        Parameters:
        clazz - The class of parsed child value.
        defaultValue - A defaultValue to return, if no such child found.
        Returns:
        the value of the child which is an instance of clazz, or defaultValue if no such child exists.
      • addChild

        public void addChild​(Node child)
      • removeChild

        public Node removeChild​(String name)
      • removeChild

        public void removeChild​(Node child)
      • getParent

        public Node getParent()
        Description copied from interface: Node
        Returns the parent node for this node
        Specified by:
        getParent in interface Node
        Returns:
        The parent node. Returns null if no parent exists.
      • setParent

        public void setParent​(Node parent)
        Description copied from interface: Node
        Sets the parent pointer for this node. Call with a null parameter to clear the parent pointer
        Specified by:
        setParent in interface Node
        Parameters:
        parent - The new parent node. Passing null will clear the parent pointer.
      • addAttribute

        public void addAttribute​(Node attribute)
      • removeAttribute

        public Node removeAttribute​(String name)
      • collapseWhitespace

        public void collapseWhitespace()