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
      • createDocumentInputStream

        public DocumentInputStream createDocumentInputStream​(String documentName)
                                                      throws 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:
        IOException - if the document does not exist or the name is that of a DirectoryEntry
      • createDocumentInputStream

        public DocumentInputStream createDocumentInputStream​(Entry document)
                                                      throws 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:
        IOException - if the document does not exist or the name is that of a DirectoryEntry
      • getEntries

        public 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 Set<String> getEntryNames()
        get the literal, case-sensitive 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​(String name)
        Checks for a specific entry in a case-sensitive way.
        Specified by:
        hasEntry in interface DirectoryEntry
        Parameters:
        name -
        Returns:
        whether or not an entry exists for that name (case-sensitive)
      • hasEntryCaseInsensitive

        public boolean hasEntryCaseInsensitive​(String name)
        Checks for a specific entry in a case-insensitive way.
        Specified by:
        hasEntryCaseInsensitive in interface DirectoryEntry
        Parameters:
        name -
        Returns:
        whether or not an entry exists for that name (case-insensitive)
      • getEntry

        public Entry getEntry​(String name)
                       throws FileNotFoundException
        get a specified Entry by name, case sensitive
        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
      • getEntryCaseInsensitive

        public Entry getEntryCaseInsensitive​(String name)
                                      throws FileNotFoundException
        get a specified Entry by name, case-insensitive
        Specified by:
        getEntryCaseInsensitive 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,
                                            InputStream 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 - if the document can't be created
      • 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 - if the document can't be created
      • createOrUpdateDocument

        public DocumentEntry createOrUpdateDocument​(String name,
                                                    InputStream stream)
                                             throws 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:
        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
      • 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<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 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