Package org.apache.poi.poifs.filesystem
Class DirectoryNode
- java.lang.Object
-
- org.apache.poi.poifs.filesystem.EntryNode
-
- org.apache.poi.poifs.filesystem.DirectoryNode
-
- All Implemented Interfaces:
java.lang.Iterable<Entry>
,POIFSViewable
,DirectoryEntry
,Entry
public class DirectoryNode extends EntryNode implements DirectoryEntry, POIFSViewable, java.lang.Iterable<Entry>
Simple implementation of DirectoryEntry
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DirectoryEntry
createDirectory(java.lang.String name)
create a new DirectoryEntryDocumentEntry
createDocument(java.lang.String name, int size, POIFSWriterListener writer)
create a new DocumentEntry; the data will be provided laterDocumentEntry
createDocument(java.lang.String name, java.io.InputStream stream)
create a new DocumentEntryDocumentInputStream
createDocumentInputStream(java.lang.String documentName)
open a document in the directory's entry's list of entriesDocumentInputStream
createDocumentInputStream(Entry document)
open a document in the directory's entry's list of entriesDocumentEntry
createOrUpdateDocument(java.lang.String name, java.io.InputStream stream)
Set the contents of a document, creating if needed, otherwise updating.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.)Entry
getEntry(java.lang.String name)
get a specified Entry by nameint
getEntryCount()
find out how many Entry instances are contained directly within this DirectoryEntryjava.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).POIFSFileSystem
getFileSystem()
POIFSFileSystem
getNFileSystem()
If this is NPOIFS based, return the NPOIFSFileSystem that this belong to, otherwise Null if OPOIFS basedPOIFSDocumentPath
getPath()
java.lang.String
getShortDescription()
Provides a short description of the object, to be used when a POIFSViewable object has not provided its contents.ClassID
getStorageClsid()
Gets the storage clsid of the directory entryjava.lang.Object[]
getViewableArray()
Get an array of objects, some of which may implement POIFSViewablejava.util.Iterator<java.lang.Object>
getViewableIterator()
Get an Iterator of objects, some of which may implement POIFSViewableboolean
hasEntry(java.lang.String name)
Checks if entry with specified name presentboolean
isDirectoryEntry()
is this a DirectoryEntry?boolean
isEmpty()
is this DirectoryEntry empty?java.util.Iterator<Entry>
iterator()
Returns an Iterator over all the entriesboolean
preferArray()
Give viewers a hint as to whether to call getViewableArray or getViewableIteratorvoid
setStorageClsid(ClassID clsidStorage)
Sets the storage clsid for the directory entry-
Methods inherited from class org.apache.poi.poifs.filesystem.EntryNode
delete, getName, getParent, isDocumentEntry, renameTo
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
-
-
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 interfaceDirectoryEntry
- 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 interfaceDirectoryEntry
- 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 interfaceDirectoryEntry
- 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 interfaceDirectoryEntry
- 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 interfaceDirectoryEntry
-
getEntry
public Entry getEntry(java.lang.String name) throws java.io.FileNotFoundException
get a specified Entry by name- Specified by:
getEntry
in interfaceDirectoryEntry
- 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 interfaceDirectoryEntry
- Parameters:
name
- the name of the new DocumentEntrystream
- 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 interfaceDirectoryEntry
- Parameters:
name
- the name of the new DocumentEntrysize
- the size of the new DocumentEntrywriter
- 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 interfaceDirectoryEntry
- 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 DocumentEntrystream
- 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 interfaceDirectoryEntry
- Returns:
- storage Class ID
-
setStorageClsid
public void setStorageClsid(ClassID clsidStorage)
Sets the storage clsid for the directory entry- Specified by:
setStorageClsid
in interfaceDirectoryEntry
- Parameters:
clsidStorage
- storage Class ID
-
isDirectoryEntry
public boolean isDirectoryEntry()
is this a DirectoryEntry?- Specified by:
isDirectoryEntry
in interfaceEntry
- Overrides:
isDirectoryEntry
in classEntryNode
- 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 interfacePOIFSViewable
- 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 interfacePOIFSViewable
- 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 interfacePOIFSViewable
- 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 interfacePOIFSViewable
- Returns:
- short description
-
-