Class DirectoryNode

java.lang.Object
loci.poi.poifs.filesystem.EntryNode
loci.poi.poifs.filesystem.DirectoryNode
All Implemented Interfaces:
POIFSViewable, DirectoryEntry, Entry

public class DirectoryNode extends EntryNode implements DirectoryEntry, POIFSViewable
Simple implementation of DirectoryEntry
Author:
Marc Johnson (mjohnson at apache dot org)
  • Method Details

    • getPath

      public POIFSDocumentPath getPath()
      Returns:
      this directory's path representation
    • getEntries

      public Iterator getEntries()
      get an iterator of the Entry instances contained directly in this instance (in other words, children only; no grandchildren etc.)
      Specified by:
      getEntries in interface DirectoryEntry
      Returns:
      iterator; never null, but hasNext() may return false immediately (i.e., this DirectoryEntry is empty). All objects retrieved by next() are guaranteed to be implementations of Entry.
    • isEmpty

      public boolean isEmpty()
      is this DirectoryEntry empty?
      Specified by:
      isEmpty in interface DirectoryEntry
      Returns:
      true if this instance contains no Entry instances
    • getEntryCount

      public int getEntryCount()
      find out how many Entry instances are contained directly within this DirectoryEntry
      Specified by:
      getEntryCount in interface DirectoryEntry
      Returns:
      number of immediately (no grandchildren etc.) contained Entry instances
    • getEntry

      public Entry getEntry(String name) throws FileNotFoundException
      get a specified Entry by name
      Specified by:
      getEntry in interface DirectoryEntry
      Parameters:
      name - the name of the Entry to obtain.
      Returns:
      the specified Entry, if it is directly contained in this DirectoryEntry
      Throws:
      FileNotFoundException - if no Entry with the specified name exists in this DirectoryEntry
    • createDocument

      public DocumentEntry createDocument(String name, loci.common.RandomAccessInputStream stream) throws IOException
      create a new DocumentEntry
      Specified by:
      createDocument in interface DirectoryEntry
      Parameters:
      name - the name of the new DocumentEntry
      stream - the InputStream from which to create the new DocumentEntry
      Returns:
      the new DocumentEntry
      Throws:
      IOException
    • createDocument

      public DocumentEntry createDocument(String name, int size, POIFSWriterListener writer) throws IOException
      create a new DocumentEntry; the data will be provided later
      Specified by:
      createDocument in interface DirectoryEntry
      Parameters:
      name - the name of the new DocumentEntry
      size - the size of the new DocumentEntry
      writer - the writer of the new DocumentEntry
      Returns:
      the new DocumentEntry
      Throws:
      IOException
    • createDirectory

      public DirectoryEntry createDirectory(String name) throws IOException
      create a new DirectoryEntry
      Specified by:
      createDirectory in interface DirectoryEntry
      Parameters:
      name - the name of the new DirectoryEntry
      Returns:
      the new DirectoryEntry
      Throws:
      IOException
    • getStorageClsid

      public ClassID getStorageClsid()
      Gets the storage clsid of the directory entry
      Specified by:
      getStorageClsid in interface DirectoryEntry
      Returns:
      storage Class ID
    • setStorageClsid

      public void setStorageClsid(ClassID clsidStorage)
      Sets the storage clsid for the directory entry
      Specified by:
      setStorageClsid in interface DirectoryEntry
      Parameters:
      clsidStorage - storage Class ID
    • isDirectoryEntry

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

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

      public Object[] getViewableArray()
      Get an array of objects, some of which may implement POIFSViewable
      Specified by:
      getViewableArray in interface POIFSViewable
      Returns:
      an array of Object; may not be null, but may be empty
    • getViewableIterator

      public Iterator getViewableIterator()
      Get an Iterator of objects, some of which may implement POIFSViewable
      Specified by:
      getViewableIterator in interface POIFSViewable
      Returns:
      an Iterator; may not be null, but may have an empty back end store
    • preferArray

      public boolean preferArray()
      Give viewers a hint as to whether to call getViewableArray or getViewableIterator
      Specified by:
      preferArray in interface POIFSViewable
      Returns:
      true if a viewer should call getViewableArray, false if a viewer should call getViewableIterator
    • getShortDescription

      public String getShortDescription()
      Provides a short description of the object, to be used when a POIFSViewable object has not provided its contents.
      Specified by:
      getShortDescription in interface POIFSViewable
      Returns:
      short description