Class ShrinkWrapPath

  • All Implemented Interfaces:
    java.lang.Comparable<java.nio.file.Path>, java.lang.Iterable<java.nio.file.Path>, java.nio.file.Path, java.nio.file.Watchable

    public class ShrinkWrapPath
    extends java.lang.Object
    implements java.nio.file.Path
    NIO.2 Path implementation adapting to the ArchivePath construct in a ShrinkWrap Archive
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compareTo​(java.nio.file.Path other)
      private int countOccurrences​(java.lang.String string, char c, int offset)
      Returns the number of occurrences of the specified character in the specified String, starting at the specified offset
      boolean endsWith​(java.lang.String other)
      boolean endsWith​(java.nio.file.Path other)
      boolean equals​(java.lang.Object obj)
      private java.nio.file.Path fromString​(java.lang.String path)
      Creates a new ShrinkWrapPath instance from the specified input String
      java.nio.file.Path getFileName()
      java.nio.file.FileSystem getFileSystem()
      java.nio.file.Path getName​(int index)
      int getNameCount()
      java.nio.file.Path getParent()
      java.nio.file.Path getRoot()
      int hashCode()
      boolean isAbsolute()
      java.util.Iterator<java.nio.file.Path> iterator()
      java.nio.file.Path normalize()
      private static java.lang.String normalize​(java.util.List<java.lang.String> path, boolean absolute)
      Normalizes the tokenized view of the path
      java.nio.file.WatchKey register​(java.nio.file.WatchService watcher, java.nio.file.WatchEvent.Kind<?>... events)
      java.nio.file.WatchKey register​(java.nio.file.WatchService watcher, java.nio.file.WatchEvent.Kind<?>[] events, java.nio.file.WatchEvent.Modifier... modifiers)
      java.nio.file.Path relativize​(java.nio.file.Path other)
      private static ShrinkWrapPath relativizeCommonRoot​(ShrinkWrapPath thisOriginal, java.nio.file.Path thisCurrent, java.nio.file.Path otherOriginal, java.nio.file.Path otherCurrent, int backupCount)
      Relativizes the paths recursively
      java.nio.file.Path resolve​(java.lang.String other)
      java.nio.file.Path resolve​(java.nio.file.Path other)
      java.nio.file.Path resolveSibling​(java.lang.String other)
      java.nio.file.Path resolveSibling​(java.nio.file.Path other)
      boolean startsWith​(java.lang.String other)
      boolean startsWith​(java.nio.file.Path other)
      java.nio.file.Path subpath​(int beginIndex, int endIndex)
      java.nio.file.Path toAbsolutePath()
      Resolves relative paths against the root directory, normalizing as well.
      java.io.File toFile()
      private static java.util.List<java.lang.String> tokenize​(ShrinkWrapPath path)
      Returns the components of this path in order from root out
      java.nio.file.Path toRealPath​(java.nio.file.LinkOption... options)
      java.lang.String toString()
      java.net.URI toUri()
      • Methods inherited from class java.lang.Object

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

        forEach, spliterator
    • Constructor Detail

      • ShrinkWrapPath

        ShrinkWrapPath​(java.lang.String path,
                       ShrinkWrapFileSystem fileSystem)
                throws java.lang.IllegalArgumentException
        Constructs a new instance using the specified (required) canonical form and backing ShrinkWrapFileSystem
        Parameters:
        path -
        fileSystem -
        Throws:
        java.lang.IllegalArgumentException - If the path or file system is not specified
      • ShrinkWrapPath

        ShrinkWrapPath​(ArchivePath path,
                       ShrinkWrapFileSystem fileSystem)
                throws java.lang.IllegalArgumentException
        Constructs a new instance using the specified (required) path and backing ShrinkWrapFileSystem
        Parameters:
        path - to be evaluated using ArchivePath.get()
        fileSystem -
        Throws:
        java.lang.IllegalArgumentException - If the path or file system is not specified
        java.lang.IllegalArgumentException - If the delegate is not specified
    • Method Detail

      • getFileSystem

        public java.nio.file.FileSystem getFileSystem()
        Specified by:
        getFileSystem in interface java.nio.file.Path
        See Also:
        Path.getFileSystem()
      • isAbsolute

        public boolean isAbsolute()
        Specified by:
        isAbsolute in interface java.nio.file.Path
        See Also:
        Path.isAbsolute()
      • getRoot

        public java.nio.file.Path getRoot()
        Specified by:
        getRoot in interface java.nio.file.Path
        See Also:
        Path.getRoot()
      • getFileName

        public java.nio.file.Path getFileName()
        Specified by:
        getFileName in interface java.nio.file.Path
        See Also:
        Path.getFileName()
      • getParent

        public java.nio.file.Path getParent()
        Specified by:
        getParent in interface java.nio.file.Path
        See Also:
        Path.getParent()
      • getNameCount

        public int getNameCount()
        Specified by:
        getNameCount in interface java.nio.file.Path
        See Also:
        Path.getNameCount()
      • countOccurrences

        private int countOccurrences​(java.lang.String string,
                                     char c,
                                     int offset)
        Returns the number of occurrences of the specified character in the specified String, starting at the specified offset
        Parameters:
        string -
        c -
        offset -
        Returns:
      • getName

        public java.nio.file.Path getName​(int index)
        Specified by:
        getName in interface java.nio.file.Path
        See Also:
        Path.getName(int)
      • subpath

        public java.nio.file.Path subpath​(int beginIndex,
                                          int endIndex)
        Specified by:
        subpath in interface java.nio.file.Path
        See Also:
        Path.subpath(int, int)
      • startsWith

        public boolean startsWith​(java.nio.file.Path other)
        Specified by:
        startsWith in interface java.nio.file.Path
        See Also:
        Path.startsWith(java.nio.file.Path)
      • startsWith

        public boolean startsWith​(java.lang.String other)
        Specified by:
        startsWith in interface java.nio.file.Path
        See Also:
        Path.startsWith(java.lang.String)
      • endsWith

        public boolean endsWith​(java.nio.file.Path other)
        Specified by:
        endsWith in interface java.nio.file.Path
        See Also:
        Path.endsWith(java.nio.file.Path)
      • endsWith

        public boolean endsWith​(java.lang.String other)
        Specified by:
        endsWith in interface java.nio.file.Path
        See Also:
        Path.endsWith(java.lang.String)
      • normalize

        public java.nio.file.Path normalize()
        Specified by:
        normalize in interface java.nio.file.Path
        See Also:
        Path.normalize()
      • resolve

        public java.nio.file.Path resolve​(java.nio.file.Path other)
        Specified by:
        resolve in interface java.nio.file.Path
        See Also:
        Path.resolve(java.nio.file.Path)
      • resolve

        public java.nio.file.Path resolve​(java.lang.String other)
        Specified by:
        resolve in interface java.nio.file.Path
        See Also:
        Path.resolve(java.lang.String)
      • resolveSibling

        public java.nio.file.Path resolveSibling​(java.nio.file.Path other)
        Specified by:
        resolveSibling in interface java.nio.file.Path
        See Also:
        Path.resolveSibling(java.nio.file.Path)
      • resolveSibling

        public java.nio.file.Path resolveSibling​(java.lang.String other)
        Specified by:
        resolveSibling in interface java.nio.file.Path
        See Also:
        Path.resolveSibling(java.lang.String)
      • relativize

        public java.nio.file.Path relativize​(java.nio.file.Path other)
        Specified by:
        relativize in interface java.nio.file.Path
        See Also:
        Path.relativize(java.nio.file.Path)
      • toUri

        public java.net.URI toUri()
        Specified by:
        toUri in interface java.nio.file.Path
        See Also:
        Path.toUri()
      • toAbsolutePath

        public java.nio.file.Path toAbsolutePath()
        Resolves relative paths against the root directory, normalizing as well.
        Specified by:
        toAbsolutePath in interface java.nio.file.Path
        See Also:
        Path.toAbsolutePath()
      • toRealPath

        public java.nio.file.Path toRealPath​(java.nio.file.LinkOption... options)
                                      throws java.io.IOException
        Specified by:
        toRealPath in interface java.nio.file.Path
        Throws:
        java.io.IOException
        See Also:
        Path.toRealPath(java.nio.file.LinkOption[])
      • toFile

        public java.io.File toFile()
        Specified by:
        toFile in interface java.nio.file.Path
        See Also:
        Path.toFile()
      • register

        public java.nio.file.WatchKey register​(java.nio.file.WatchService watcher,
                                               java.nio.file.WatchEvent.Kind<?>[] events,
                                               java.nio.file.WatchEvent.Modifier... modifiers)
                                        throws java.io.IOException
        Specified by:
        register in interface java.nio.file.Path
        Specified by:
        register in interface java.nio.file.Watchable
        Throws:
        java.io.IOException
        See Also:
        java.nio.file.Path#register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind[], java.nio.file.WatchEvent.Modifier[])
      • register

        public java.nio.file.WatchKey register​(java.nio.file.WatchService watcher,
                                               java.nio.file.WatchEvent.Kind<?>... events)
                                        throws java.io.IOException
        Specified by:
        register in interface java.nio.file.Path
        Specified by:
        register in interface java.nio.file.Watchable
        Throws:
        java.io.IOException
        See Also:
        java.nio.file.Path#register(java.nio.file.WatchService, java.nio.file.WatchEvent.Kind[])
      • iterator

        public java.util.Iterator<java.nio.file.Path> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<java.nio.file.Path>
        Specified by:
        iterator in interface java.nio.file.Path
        See Also:
        Path.iterator()
      • compareTo

        public int compareTo​(java.nio.file.Path other)
        Specified by:
        compareTo in interface java.lang.Comparable<java.nio.file.Path>
        Specified by:
        compareTo in interface java.nio.file.Path
        See Also:
        Path.compareTo(java.nio.file.Path)
      • toString

        public java.lang.String toString()
        Specified by:
        toString in interface java.nio.file.Path
        Overrides:
        toString in class java.lang.Object
        See Also:
        Path.toString()
      • fromString

        private java.nio.file.Path fromString​(java.lang.String path)
        Creates a new ShrinkWrapPath instance from the specified input String
        Parameters:
        path -
        Returns:
      • tokenize

        private static java.util.List<java.lang.String> tokenize​(ShrinkWrapPath path)
        Returns the components of this path in order from root out
        Returns:
      • normalize

        private static java.lang.String normalize​(java.util.List<java.lang.String> path,
                                                  boolean absolute)
        Normalizes the tokenized view of the path
        Parameters:
        path -
        Returns:
      • relativizeCommonRoot

        private static ShrinkWrapPath relativizeCommonRoot​(ShrinkWrapPath thisOriginal,
                                                           java.nio.file.Path thisCurrent,
                                                           java.nio.file.Path otherOriginal,
                                                           java.nio.file.Path otherCurrent,
                                                           int backupCount)
        Relativizes the paths recursively
        Parameters:
        thisOriginal -
        thisCurrent -
        otherOriginal -
        otherCurrent -
        backupCount -
        Returns:
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface java.nio.file.Path
        Overrides:
        hashCode in class java.lang.Object
        See Also:
        Object.hashCode()
      • equals

        public boolean equals​(java.lang.Object obj)
        Specified by:
        equals in interface java.nio.file.Path
        Overrides:
        equals in class java.lang.Object
        See Also:
        Object.equals(java.lang.Object)