Class EntryNode

  • All Implemented Interfaces:
    Entry
    Direct Known Subclasses:
    DirectoryNode, DocumentNode

    public abstract class EntryNode
    extends Object
    implements Entry
    Abstract implementation of Entry Extending classes should override isDocument() or isDirectory(), as appropriate Extending classes must override isDeleteOK()
    • Constructor Detail

      • EntryNode

        protected EntryNode​(Property property,
                            DirectoryNode parent)
        create a DocumentNode. This method is not public by design; it is intended strictly for the internal use of extending classes
        Parameters:
        property - the Property for this Entry
        parent - the parent of this entry
    • Method Detail

      • getProperty

        protected Property getProperty()
        grant access to the property
        Returns:
        the property backing this entry
      • isRoot

        protected boolean isRoot()
        is this the root of the tree?
        Returns:
        true if so, else false
      • isDeleteOK

        protected abstract boolean isDeleteOK()
        extensions use this method to verify internal rules regarding deletion of the underlying store.
        Returns:
        true if it's ok to delete the underlying store, else false
      • getName

        public String getName()
        get the name of the Entry
        Specified by:
        getName in interface Entry
        Returns:
        name
      • isDirectoryEntry

        public boolean isDirectoryEntry()
        is this a DirectoryEntry?
        Specified by:
        isDirectoryEntry in interface Entry
        Returns:
        true if the Entry is a DirectoryEntry, else false
      • isDocumentEntry

        public boolean isDocumentEntry()
        is this a DocumentEntry?
        Specified by:
        isDocumentEntry in interface Entry
        Returns:
        true if the Entry is a DocumentEntry, else false
      • getParent

        public DirectoryEntry getParent()
        get this Entry's parent (the DocumentEntry that owns this Entry). All Entry objects, except the root Entry, has a parent.
        Specified by:
        getParent in interface Entry
        Returns:
        this Entry's parent; null iff this is the root Entry
      • delete

        public boolean delete()
        Delete this Entry. This operation should succeed, but there are special circumstances when it will not: If this Entry is the root of the Entry tree, it cannot be deleted, as there is no way to create another one. If this Entry is a directory, it cannot be deleted unless it is empty.
        Specified by:
        delete in interface Entry
        Returns:
        true if the Entry was successfully deleted, else false
      • renameTo

        public boolean renameTo​(String newName)
        Rename this Entry. This operation will fail if: There is a sibling Entry (i.e., an Entry whose parent is the same as this Entry's parent) with the same name. This Entry is the root of the Entry tree. Its name is dictated by the Filesystem and many not be changed.
        Specified by:
        renameTo in interface Entry
        Parameters:
        newName - the new name for this Entry
        Returns:
        true if the operation succeeded, else false