Class DirectoryNode

    • Method Detail

      • getPath

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

        public POIFSFileSystem getFileSystem()
        Returns:
        the filesystem that this belongs to
      • getNFileSystem

        public POIFSFileSystem getNFileSystem()
        If this is NPOIFS based, return the NPOIFSFileSystem that this belong to, otherwise Null if OPOIFS based
        Returns:
        the filesystem that this belongs to
      • createDocumentInputStream

        public DocumentInputStream createDocumentInputStream​(java.lang.String documentName)
                                                      throws java.io.IOException
        open a document in the directory's entry's list of entries
        Parameters:
        documentName - the name of the document to be opened
        Returns:
        a newly opened DocumentInputStream
        Throws:
        java.io.IOException - if the document does not exist or the name is that of a DirectoryEntry
      • createDocumentInputStream

        public DocumentInputStream createDocumentInputStream​(Entry document)
                                                      throws java.io.IOException
        open a document in the directory's entry's list of entries
        Parameters:
        document - the document to be opened
        Returns:
        a newly opened DocumentInputStream or DocumentInputStream
        Throws:
        java.io.IOException - if the document does not exist or the name is that of a DirectoryEntry
      • getEntries

        public java.util.Iterator<Entry> 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.
      • getEntryNames

        public java.util.Set<java.lang.String> getEntryNames()
        get the names of all the Entries contained directly in this instance (in other words, names of children only; no grandchildren etc).
        Specified by:
        getEntryNames in interface DirectoryEntry
        Returns:
        the names of all the entries that may be retrieved with getEntry(String), which may be empty (if this DirectoryEntry is empty)
      • 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
      • hasEntry

        public boolean hasEntry​(java.lang.String name)
        Description copied from interface: DirectoryEntry
        Checks if entry with specified name present
        Specified by:
        hasEntry in interface DirectoryEntry
      • getEntry

        public Entry getEntry​(java.lang.String name)
                       throws java.io.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:
        java.io.FileNotFoundException - if no Entry with the specified name exists in this DirectoryEntry
      • createDocument

        public DocumentEntry createDocument​(java.lang.String name,
                                            java.io.InputStream stream)
                                     throws java.io.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:
        java.io.IOException - if the document can't be created
      • createDocument

        public DocumentEntry createDocument​(java.lang.String name,
                                            int size,
                                            POIFSWriterListener writer)
                                     throws java.io.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:
        java.io.IOException - if the document can't be created
      • createDirectory

        public DirectoryEntry createDirectory​(java.lang.String name)
                                       throws java.io.IOException
        create a new DirectoryEntry
        Specified by:
        createDirectory in interface DirectoryEntry
        Parameters:
        name - the name of the new DirectoryEntry
        Returns:
        the new DirectoryEntry
        Throws:
        java.io.IOException - if the directory can't be created
      • createOrUpdateDocument

        public DocumentEntry createOrUpdateDocument​(java.lang.String name,
                                                    java.io.InputStream stream)
                                             throws java.io.IOException
        Set the contents of a document, creating if needed, otherwise updating. Returns the created / updated DocumentEntry
        Parameters:
        name - the name of the new or existing DocumentEntry
        stream - the InputStream from which to populate the DocumentEntry
        Returns:
        the new or updated DocumentEntry
        Throws:
        java.io.IOException - if the document can't be created or its content be replaced
      • 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
      • getViewableArray

        public java.lang.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 java.util.Iterator<java.lang.Object> 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 java.lang.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
      • iterator

        public java.util.Iterator<Entry> iterator()
        Returns an Iterator over all the entries
        Specified by:
        iterator in interface java.lang.Iterable<Entry>