Class Hierarchy

  • All Implemented Interfaces:
    java.lang.Iterable<NamedNode>
    Direct Known Subclasses:
    JarIndex

    public class Hierarchy
    extends java.lang.Object
    implements java.lang.Iterable<NamedNode>
    A general hierarchy of named nodes. Can be accessed fast via a path or iterative.
    • Constructor Summary

      Constructors 
      Constructor Description
      Hierarchy​(java.util.Map<java.lang.String,​java.lang.Object> map)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected java.util.Map<java.lang.String,​?> asMap()  
      java.util.Optional<NamedNode> find​(java.lang.String path)
      Find a node in the hierarchy.
      java.util.Optional<NamedNode> find​(java.lang.String[] parts)  
      java.util.Optional<FolderNode> findFolder​(java.lang.String path)
      Find a folder
      java.util.Optional<FolderNode> findFolder​(java.lang.String[] parts)  
      java.util.Iterator<NamedNode> iterator()  
      protected java.lang.Object payload​(LeafNode node)  
      int size()  
      java.util.stream.Stream<NamedNode> stream()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Constructor Detail

      • Hierarchy

        public Hierarchy​(java.util.Map<java.lang.String,​java.lang.Object> map)
    • Method Detail

      • findFolder

        public java.util.Optional<FolderNode> findFolder​(java.lang.String path)
        Find a folder
        Parameters:
        path - the name of the folder. Can end in '/' or not
        Returns:
        a folder node
      • findFolder

        public java.util.Optional<FolderNode> findFolder​(java.lang.String[] parts)
      • find

        public java.util.Optional<NamedNode> find​(java.lang.String path)
        Find a node in the hierarchy.
        Parameters:
        path - a '/' separated path. May start and end with superfluous '/'
        Returns:
        a node or Optional.empty() if not found
      • iterator

        public java.util.Iterator<NamedNode> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<NamedNode>
      • payload

        protected java.lang.Object payload​(LeafNode node)
      • asMap

        protected java.util.Map<java.lang.String,​?> asMap()
      • size

        public int size()
      • stream

        public java.util.stream.Stream<NamedNode> stream()
      • find

        public java.util.Optional<NamedNode> find​(java.lang.String[] parts)