Class DirectoryEntry


  • final class DirectoryEntry
    extends java.lang.Object
    Entry in a directory, containing references to the directory itself, the file the entry links to and the name of the entry.

    May also represent a non-existent entry if the name does not link to any file in the directory.

    • Constructor Detail

      • DirectoryEntry

        DirectoryEntry​(Directory directory,
                       Name name,
                       @Nullable File file)
    • Method Detail

      • exists

        public boolean exists()
        Returns true if and only if this entry represents an existing file.
      • requireExists

        @CanIgnoreReturnValue
        public DirectoryEntry requireExists​(java.nio.file.Path pathForException)
                                     throws java.nio.file.NoSuchFileException
        Checks that this entry exists, throwing an exception if not.
        Returns:
        this
        Throws:
        java.nio.file.NoSuchFileException - if this entry does not exist
      • requireDoesNotExist

        @CanIgnoreReturnValue
        public DirectoryEntry requireDoesNotExist​(java.nio.file.Path pathForException)
                                           throws java.nio.file.FileAlreadyExistsException
        Checks that this entry does not exist, throwing an exception if it does.
        Returns:
        this
        Throws:
        java.nio.file.FileAlreadyExistsException - if this entry does not exist
      • requireDirectory

        @CanIgnoreReturnValue
        public DirectoryEntry requireDirectory​(java.nio.file.Path pathForException)
                                        throws java.nio.file.NoSuchFileException,
                                               java.nio.file.NotDirectoryException
        Checks that this entry exists and links to a directory, throwing an exception if not.
        Returns:
        this
        Throws:
        java.nio.file.NoSuchFileException - if this entry does not exist
        java.nio.file.NotDirectoryException - if this entry does not link to a directory
      • requireSymbolicLink

        @CanIgnoreReturnValue
        public DirectoryEntry requireSymbolicLink​(java.nio.file.Path pathForException)
                                           throws java.nio.file.NoSuchFileException,
                                                  java.nio.file.NotLinkException
        Checks that this entry exists and links to a symbolic link, throwing an exception if not.
        Returns:
        this
        Throws:
        java.nio.file.NoSuchFileException - if this entry does not exist
        java.nio.file.NotLinkException - if this entry does not link to a symbolic link
      • directory

        public Directory directory()
        Returns the directory containing this entry.
      • name

        public Name name()
        Returns the name of this entry.
      • file

        public File file()
        Returns the file this entry links to.
        Throws:
        java.lang.IllegalStateException - if the file does not exist
      • fileOrNull

        public @Nullable File fileOrNull()
        Returns the file this entry links to or null if the file does not exist
      • 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
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object