diff options
author | Nick Burch <nick@apache.org> | 2010-12-29 03:19:46 +0000 |
---|---|---|
committer | Nick Burch <nick@apache.org> | 2010-12-29 03:19:46 +0000 |
commit | f22e831a0fb723b801f726d0d3aeb1bc7fb162ba (patch) | |
tree | 686f43a2c9664d6b8fe85782be0c90e4b592be00 /src/java | |
parent | bf27275eb2421a2ac8dc79799f9d0f2232b29197 (diff) | |
download | poi-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')
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())); } } } |