Class CategoryPath

  • All Implemented Interfaces:
    java.lang.Comparable<CategoryPath>

    public class CategoryPath
    extends java.lang.Object
    implements java.lang.Comparable<CategoryPath>
    Holds a sequence of string components, specifying the hierarchical name of a category.
    • Constructor Summary

      Constructors 
      Constructor Description
      CategoryPath​(java.lang.String... components)
      Construct from the given path components.
      CategoryPath​(java.lang.String pathString, char delimiter)
      Construct from a given path, separating path components with delimiter.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compareTo​(CategoryPath other)
      Compares this path with another CategoryPath for lexicographic order.
      int copyFullPath​(char[] buf, int start, char delimiter)
      Copies the path components to the given char[], starting at index start.
      boolean equals​(java.lang.Object obj)  
      int fullPathLength()
      Returns the number of characters needed to represent the path, including delimiter characters, for using with copyFullPath(char[], int, char).
      int hashCode()  
      long longHashCode()
      Calculate a 64-bit hash function for this path.
      CategoryPath subpath​(int length)
      Returns a sub-path of this path up to length components.
      java.lang.String toString()
      Returns a string representation of the path, separating components with '/'.
      java.lang.String toString​(char delimiter)
      Returns a string representation of the path, separating components with the given delimiter.
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • components

        public final java.lang.String[] components
        The components of this CategoryPath. Note that this array may be shared with other CategoryPath instances, e.g. as a result of subpath(int), therefore you should traverse the array up to length for this path's components.
      • length

        public final int length
        The number of components of this CategoryPath.
    • Constructor Detail

      • CategoryPath

        public CategoryPath​(java.lang.String... components)
        Construct from the given path components.
      • CategoryPath

        public CategoryPath​(java.lang.String pathString,
                            char delimiter)
        Construct from a given path, separating path components with delimiter.
    • Method Detail

      • fullPathLength

        public int fullPathLength()
        Returns the number of characters needed to represent the path, including delimiter characters, for using with copyFullPath(char[], int, char).
      • compareTo

        public int compareTo​(CategoryPath other)
        Compares this path with another CategoryPath for lexicographic order.
        Specified by:
        compareTo in interface java.lang.Comparable<CategoryPath>
      • copyFullPath

        public int copyFullPath​(char[] buf,
                                int start,
                                char delimiter)
        Copies the path components to the given char[], starting at index start. delimiter is copied between the path components. Returns the number of chars copied.

        NOTE: this method relies on the array being large enough to hold the components and separators - the amount of needed space can be calculated with fullPathLength().

      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • longHashCode

        public long longHashCode()
        Calculate a 64-bit hash function for this path.
      • subpath

        public CategoryPath subpath​(int length)
        Returns a sub-path of this path up to length components.
      • toString

        public java.lang.String toString()
        Returns a string representation of the path, separating components with '/'.
        Overrides:
        toString in class java.lang.Object
        See Also:
        toString(char)
      • toString

        public java.lang.String toString​(char delimiter)
        Returns a string representation of the path, separating components with the given delimiter.