org.apache.poi.poifs.filesystem

## Class EntryNode

- java.lang.Object
- - org.apache.poi.poifs.filesystem.EntryNode

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

      public abstract class EntryNode
      extends java.lang.Object
      implements Entry

  Abstract implementation of Entry Extending classes should override isDocument() or isDirectory(), as appropriate Extending classes must override isDeleteOK()
  Author:
    Marc Johnson (mjohnson at apache dot org)

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `EntryNode(Property property, DirectoryNode parent)` create a DocumentNode.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `delete()` Delete this Entry.
    `java.lang.String` | `getName()` get the name of the Entry
    `DirectoryEntry` | `getParent()` get this Entry's parent (the DocumentEntry that owns this Entry).
    `protected Property` | `getProperty()` grant access to the property
    `protected abstract boolean` | `isDeleteOK()` extensions use this method to verify internal rules regarding deletion of the underlying store.
    `boolean` | `isDirectoryEntry()` is this a DirectoryEntry?
    `boolean` | `isDocumentEntry()` is this a DocumentEntry?
    `protected boolean` | `isRoot()` is this the root of the tree?
    `boolean` | `renameTo(java.lang.String newName)` Rename this Entry.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 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 java.lang.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(java.lang.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

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.