Interface NodePath

  • All Superinterfaces:
    java.lang.Iterable<java.lang.Object>

    public interface NodePath
    extends java.lang.Iterable<java.lang.Object>
    Represents the path to a given node.
    Since:
    4.0.0
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.lang.Object[] array()
      Returns a copy of the original path array.
      NodePath copy()
      Create a new node path with the same data as this path.
      java.lang.Object get​(int i)
      Gets a specific element from the path array.
      java.util.Iterator<java.lang.Object> iterator()
      Returns an iterator over the path.
      static NodePath of​(java.lang.Object[] path)
      Create a node path reference.
      static NodePath of​(java.util.Collection<?> path)
      Create a node path reference.
      static NodePath path()
      Get an empty node path.
      static NodePath path​(java.lang.Object... elements)
      Create a node path reference.
      NodePath plus​(NodePath other)
      Create a new path from the combination of this and other.
      int size()
      Gets the length of the path.
      NodePath with​(int index, java.lang.Object value)
      Create a new path with the value at index replaced with value.
      NodePath withAppendedChild​(java.lang.Object childKey)
      Create a new path with the provided element appended to the end.
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Method Detail

      • of

        static NodePath of​(java.lang.Object[] path)
        Create a node path reference.
        Parameters:
        path - the path to reference. The provided array will be copied.
        Returns:
        the path instance
        Since:
        4.0.0
      • of

        static NodePath of​(java.util.Collection<?> path)
        Create a node path reference.
        Parameters:
        path - a collection containing elements of the path to reference
        Returns:
        the path instance
        Since:
        4.0.0
      • path

        static NodePath path​(java.lang.Object... elements)
        Create a node path reference.

        This overload takes varargs, and is designed to be imported statically to create paths.

        Parameters:
        elements - the path to reference. The provided array will be copied.
        Returns:
        the path instance
        Since:
        4.0.0
      • path

        static NodePath path()
        Get an empty node path. This refers to the root node.
        Returns:
        the empty path
        Since:
        4.0.0
      • get

        java.lang.Object get​(int i)
        Gets a specific element from the path array.
        Parameters:
        i - the index to get
        Returns:
        object at the index
        Since:
        4.0.0
      • size

        int size()
        Gets the length of the path.
        Returns:
        length of the path array
        Since:
        4.0.0
      • array

        java.lang.Object[] array()
        Returns a copy of the original path array.
        Returns:
        the copied array
        Since:
        4.0.0
      • withAppendedChild

        NodePath withAppendedChild​(java.lang.Object childKey)
        Create a new path with the provided element appended to the end.
        Parameters:
        childKey - the new key to append
        Returns:
        a new path object reflecting the extended path
        Since:
        4.0.0
      • with

        NodePath with​(int index,
                      java.lang.Object value)
               throws java.lang.IndexOutOfBoundsException
        Create a new path with the value at index replaced with value.
        Parameters:
        index - position to change
        value - value to insert
        Returns:
        new path object with changed value
        Throws:
        java.lang.IndexOutOfBoundsException - if index < 0 or ≥ size()
        Since:
        4.0.0
      • plus

        NodePath plus​(NodePath other)
        Create a new path from the combination of this and other.
        Parameters:
        other - the path to append
        Returns:
        a new path, containing the elements of this path followed by the elements of other.
        Since:
        4.1.0
      • iterator

        java.util.Iterator<java.lang.Object> iterator()
        Returns an iterator over the path.
        Specified by:
        iterator in interface java.lang.Iterable<java.lang.Object>
        Returns:
        an iterator of the path elements
        Since:
        4.0.0
      • copy

        NodePath copy()
        Create a new node path with the same data as this path.
        Returns:
        a new path
        Since:
        4.0.0