aboutsummaryrefslogtreecommitdiffstats
path: root/src/java
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2010-12-29 03:19:46 +0000
committerNick Burch <nick@apache.org>2010-12-29 03:19:46 +0000
commitf22e831a0fb723b801f726d0d3aeb1bc7fb162ba (patch)
tree686f43a2c9664d6b8fe85782be0c90e4b592be00 /src/java
parentbf27275eb2421a2ac8dc79799f9d0f2232b29197 (diff)
downloadpoi-f22e831a0fb723b801f726d0d3aeb1bc7fb162ba.tar.gz
poi-f22e831a0fb723b801f726d0d3aeb1bc7fb162ba.zip
Since a DirectoryNode has a reference to the underlying POIFSFileSystem, tidy up the POIDocument constructor to not need both passing in
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1053521 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java')
-rw-r--r--src/java/org/apache/poi/POIDocument.java11
-rw-r--r--src/java/org/apache/poi/POIOLE2TextExtractor.java2
-rw-r--r--src/java/org/apache/poi/hpsf/extractor/HPSFPropertiesExtractor.java10
-rw-r--r--src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java9
4 files changed, 20 insertions, 12 deletions
diff --git a/src/java/org/apache/poi/POIDocument.java b/src/java/org/apache/poi/POIDocument.java
index dacc9235ca..b5b01bb641 100644
--- a/src/java/org/apache/poi/POIDocument.java
+++ b/src/java/org/apache/poi/POIDocument.java
@@ -50,8 +50,6 @@ public abstract class POIDocument {
private SummaryInformation sInf;
/** Holds further metadata on our document */
private DocumentSummaryInformation dsInf;
- /** The open POIFS FileSystem that contains our document */
- protected POIFSFileSystem filesystem;
/** The directory that our document lives in */
protected DirectoryNode directory;
@@ -62,12 +60,15 @@ public abstract class POIDocument {
private boolean initialized = false;
- protected POIDocument(DirectoryNode dir, POIFSFileSystem fs) {
- this.filesystem = fs;
+ protected POIDocument(DirectoryNode dir) {
this.directory = dir;
}
+ @Deprecated
+ protected POIDocument(DirectoryNode dir, POIFSFileSystem fs) {
+ this.directory = dir;
+ }
protected POIDocument(POIFSFileSystem fs) {
- this(fs.getRoot(), fs);
+ this(fs.getRoot());
}
/**
diff --git a/src/java/org/apache/poi/POIOLE2TextExtractor.java b/src/java/org/apache/poi/POIOLE2TextExtractor.java
index f198c19337..9ec09fe47a 100644
--- a/src/java/org/apache/poi/POIOLE2TextExtractor.java
+++ b/src/java/org/apache/poi/POIOLE2TextExtractor.java
@@ -66,6 +66,6 @@ public abstract class POIOLE2TextExtractor extends POITextExtractor {
* this document.
*/
public POIFSFileSystem getFileSystem() {
- return document.filesystem;
+ return document.directory.getFileSystem();
}
}
diff --git a/src/java/org/apache/poi/hpsf/extractor/HPSFPropertiesExtractor.java b/src/java/org/apache/poi/hpsf/extractor/HPSFPropertiesExtractor.java
index 1ba9b6441c..32f9049639 100644
--- a/src/java/org/apache/poi/hpsf/extractor/HPSFPropertiesExtractor.java
+++ b/src/java/org/apache/poi/hpsf/extractor/HPSFPropertiesExtractor.java
@@ -17,6 +17,7 @@
package org.apache.poi.hpsf.extractor;
+import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
@@ -30,6 +31,7 @@ import org.apache.poi.hpsf.Property;
import org.apache.poi.hpsf.SpecialPropertySet;
import org.apache.poi.hpsf.SummaryInformation;
import org.apache.poi.hpsf.wellknown.PropertyIDMap;
+import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.util.LittleEndian;
@@ -48,6 +50,9 @@ public class HPSFPropertiesExtractor extends POITextExtractor {
public HPSFPropertiesExtractor(POIFSFileSystem fs) {
super(new PropertiesOnlyDocument(fs));
}
+ public HPSFPropertiesExtractor(NPOIFSFileSystem fs) {
+ super(new PropertiesOnlyDocument(fs));
+ }
public String getDocumentSummaryInformationText() {
DocumentSummaryInformation dsi = document.getDocumentSummaryInformation();
@@ -144,6 +149,9 @@ public class HPSFPropertiesExtractor extends POITextExtractor {
* random OLE2 document.
*/
private static final class PropertiesOnlyDocument extends POIDocument {
+ public PropertiesOnlyDocument(NPOIFSFileSystem fs) {
+ super(fs.getRoot());
+ }
public PropertiesOnlyDocument(POIFSFileSystem fs) {
super(fs);
}
@@ -156,7 +164,7 @@ public class HPSFPropertiesExtractor extends POITextExtractor {
public static void main(String[] args) throws IOException {
for(String file : args) {
HPSFPropertiesExtractor ext = new HPSFPropertiesExtractor(
- new POIFSFileSystem(new FileInputStream(file))
+ new NPOIFSFileSystem(new File(file))
);
System.out.println(ext.getText());
}
diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java b/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
index a26d65aa16..5af79e921e 100644
--- a/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
+++ b/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
@@ -168,7 +168,7 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
}
private HSSFWorkbook(InternalWorkbook book) {
- super(null, null);
+ super((DirectoryNode)null);
workbook = book;
_sheets = new ArrayList(INITIAL_CAPACITY);
names = new ArrayList(INITIAL_CAPACITY);
@@ -249,7 +249,7 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
public HSSFWorkbook(DirectoryNode directory, POIFSFileSystem fs, boolean preserveNodes)
throws IOException
{
- super(directory, fs);
+ super(directory);
String workbookName = getWorkbookDirEntryName(directory);
this.preserveNodes = preserveNodes;
@@ -257,7 +257,6 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
// If we're not preserving nodes, don't track the
// POIFS any more
if(! preserveNodes) {
- this.filesystem = null;
this.directory = null;
}
@@ -1174,7 +1173,7 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
// out correctly shortly, so don't include the old one
excepts.add("WORKBOOK");
- POIFSFileSystem srcFs = this.filesystem;
+ POIFSFileSystem srcFs = this.directory.getFileSystem();
// Copy over all the other nodes to our new poifs
copyNodes(srcFs, fs, excepts);
@@ -1673,7 +1672,7 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
Object sub = subRecordIter.next();
if (sub instanceof EmbeddedObjectRefSubRecord)
{
- objects.add(new HSSFObjectData((ObjRecord) obj, filesystem));
+ objects.add(new HSSFObjectData((ObjRecord) obj, directory.getFileSystem()));
}
}
}