aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org/apache/poi/poifs/filesystem/DirectoryNode.java
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2010-12-29 03:30:07 +0000
committerNick Burch <nick@apache.org>2010-12-29 03:30:07 +0000
commit3a0d6d3f8e88cce47a7fc07b80480191334925a6 (patch)
treeab6ac26cf365f8160987f55cbd39ff2e14318cef /src/java/org/apache/poi/poifs/filesystem/DirectoryNode.java
parentf22e831a0fb723b801f726d0d3aeb1bc7fb162ba (diff)
downloadpoi-3a0d6d3f8e88cce47a7fc07b80480191334925a6.tar.gz
poi-3a0d6d3f8e88cce47a7fc07b80480191334925a6.zip
Add a NPOIFS aware createDocumentInputStream method to DirectoryNode, and use it in POIDocument. Also fix indent in the latter
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1053522 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org/apache/poi/poifs/filesystem/DirectoryNode.java')
-rw-r--r--src/java/org/apache/poi/poifs/filesystem/DirectoryNode.java39
1 files changed, 35 insertions, 4 deletions
diff --git a/src/java/org/apache/poi/poifs/filesystem/DirectoryNode.java b/src/java/org/apache/poi/poifs/filesystem/DirectoryNode.java
index fe15102b2a..29be005b8b 100644
--- a/src/java/org/apache/poi/poifs/filesystem/DirectoryNode.java
+++ b/src/java/org/apache/poi/poifs/filesystem/DirectoryNode.java
@@ -19,9 +19,14 @@
package org.apache.poi.poifs.filesystem;
-import java.io.*;
-
-import java.util.*;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
import org.apache.poi.hpsf.ClassID;
import org.apache.poi.poifs.dev.POIFSViewable;
@@ -162,7 +167,6 @@ public class DirectoryNode
* @exception IOException if the document does not exist or the
* name is that of a DirectoryEntry
*/
-
public DocumentInputStream createDocumentInputStream(
final String documentName)
throws IOException
@@ -178,6 +182,33 @@ public class DirectoryNode
}
/**
+ * open a document in the directory's entry's list of entries
+ *
+ * @param documentEntry the document to be opened
+ *
+ * @return a newly opened DocumentInputStream or NDocumentInputStream
+ *
+ * @exception IOException if the document does not exist or the
+ * name is that of a DirectoryEntry
+ */
+ public InputStream createDocumentInputStream(
+ final Entry document)
+ throws IOException
+ {
+ if (!document.isDocumentEntry()) {
+ throw new IOException("Entry '" + document.getName()
+ + "' is not a DocumentEntry");
+ }
+
+ DocumentEntry entry = (DocumentEntry)document;
+ if(_ofilesystem != null) {
+ return new DocumentInputStream(entry);
+ } else {
+ return new NDocumentInputStream(entry);
+ }
+ }
+
+ /**
* create a new DocumentEntry
*
* @param document the new document