diff --git a/src/java/org/apache/poi/POIDocument.java b/src/java/org/apache/poi/POIDocument.java index 6e1527e858..eda213fb91 100644 --- a/src/java/org/apache/poi/POIDocument.java +++ b/src/java/org/apache/poi/POIDocument.java @@ -20,7 +20,6 @@ package org.apache.poi; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.io.InputStream; import java.io.OutputStream; import java.util.Iterator; import java.util.List; @@ -35,6 +34,7 @@ import org.apache.poi.poifs.filesystem.DirectoryNode; import org.apache.poi.poifs.filesystem.DocumentEntry; import org.apache.poi.poifs.filesystem.DocumentInputStream; import org.apache.poi.poifs.filesystem.Entry; +import org.apache.poi.poifs.filesystem.NPOIFSFileSystem; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogger; @@ -64,12 +64,18 @@ public abstract class POIDocument { protected POIDocument(DirectoryNode dir) { this.directory = dir; } + /** + * @deprecated use {@link POIDocument#POIDocument(DirectoryNode)} instead + */ @Deprecated protected POIDocument(DirectoryNode dir, POIFSFileSystem fs) { this.directory = dir; - } + } protected POIDocument(POIFSFileSystem fs) { - this(fs.getRoot()); + this(fs.getRoot()); + } + protected POIDocument(NPOIFSFileSystem fs) { + this(fs.getRoot()); } /** @@ -180,7 +186,7 @@ public abstract class POIDocument { * @param outFS the POIFSFileSystem to write the properties into * @param writtenEntries a list of POIFS entries to add the property names too */ - protected void writeProperties(POIFSFileSystem outFS, List writtenEntries) throws IOException { + protected void writeProperties(POIFSFileSystem outFS, List writtenEntries) throws IOException { SummaryInformation si = getSummaryInformation(); if(si != null) { writePropertySet(SummaryInformation.DEFAULT_STREAM_NAME, si, outFS); @@ -231,35 +237,21 @@ public abstract class POIDocument { * @param excepts is a list of Strings specifying what nodes NOT to copy */ protected void copyNodes(POIFSFileSystem source, POIFSFileSystem target, - List excepts) throws IOException { + List excepts) throws IOException { //System.err.println("CopyNodes called"); DirectoryEntry root = source.getRoot(); DirectoryEntry newRoot = target.getRoot(); - Iterator entries = root.getEntries(); - + Iterator entries = root.getEntries(); while (entries.hasNext()) { - Entry entry = (Entry)entries.next(); - if (!isInList(entry.getName(), excepts)) { + Entry entry = entries.next(); + if (!excepts.contains(entry.getName())) { copyNodeRecursively(entry,newRoot); } } } - /** - * Checks to see if the String is in the list, used when copying - * nodes between one POIFS and another - */ - private boolean isInList(String entry, List list) { - for (int k = 0; k < list.size(); k++) { - if (list.get(k).equals(entry)) { - return true; - } - } - return false; - } - /** * Copies an Entry into a target POIFS directory, recursively */ @@ -270,10 +262,10 @@ public abstract class POIDocument { DirectoryEntry newTarget = null; if (entry.isDirectoryEntry()) { newTarget = target.createDirectory(entry.getName()); - Iterator entries = ((DirectoryEntry)entry).getEntries(); + Iterator entries = ((DirectoryEntry)entry).getEntries(); while (entries.hasNext()) { - copyNodeRecursively((Entry)entries.next(),newTarget); + copyNodeRecursively(entries.next(),newTarget); } } else { DocumentEntry dentry = (DocumentEntry)entry; diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java b/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java index 53867ecf95..b7101940cf 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java @@ -1193,7 +1193,7 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss // For tracking what we've written out, used if we're // going to be preserving nodes - List excepts = new ArrayList(1); + List excepts = new ArrayList(1); // Write out the Workbook stream fs.createDocument(new ByteArrayInputStream(bytes), "Workbook"); diff --git a/src/scratchpad/src/org/apache/poi/hpbf/HPBFDocument.java b/src/scratchpad/src/org/apache/poi/hpbf/HPBFDocument.java index a27b61518e..69602e7d8b 100644 --- a/src/scratchpad/src/org/apache/poi/hpbf/HPBFDocument.java +++ b/src/scratchpad/src/org/apache/poi/hpbf/HPBFDocument.java @@ -27,6 +27,7 @@ import org.apache.poi.hpbf.model.EscherStm; import org.apache.poi.hpbf.model.MainContents; import org.apache.poi.hpbf.model.QuillContents; import org.apache.poi.poifs.filesystem.DirectoryNode; +import org.apache.poi.poifs.filesystem.NPOIFSFileSystem; import org.apache.poi.poifs.filesystem.POIFSFileSystem; /** @@ -44,27 +45,39 @@ public final class HPBFDocument extends POIDocument { * Opens a new publisher document */ public HPBFDocument(POIFSFileSystem fs) throws IOException { - this(fs.getRoot(), fs); + this(fs.getRoot()); + } + public HPBFDocument(NPOIFSFileSystem fs) throws IOException { + this(fs.getRoot()); } public HPBFDocument(InputStream inp) throws IOException { - this(new POIFSFileSystem(inp)); + this(new POIFSFileSystem(inp)); } /** - * Opens an embeded publisher document, + * Opens an embedded publisher document, + * at the given directory. + * @deprecated Use {@link #HPBFDocument(DirectoryNode)} instead + */ + @Deprecated + public HPBFDocument(DirectoryNode dir, POIFSFileSystem fs) throws IOException { + this(dir); + } + /** + * Opens an embedded publisher document, * at the given directory. */ - public HPBFDocument(DirectoryNode dir, POIFSFileSystem fs) throws IOException { - super(dir, fs); + public HPBFDocument(DirectoryNode dir) throws IOException { + super(dir); - // Go looking for our interesting child - // streams - mainContents = new MainContents(dir); - quillContents = new QuillContents(dir); + // Go looking for our interesting child + // streams + mainContents = new MainContents(dir); + quillContents = new QuillContents(dir); - // Now the Escher bits - escherStm = new EscherStm(dir); - escherDelayStm = new EscherDelayStm(dir); + // Now the Escher bits + escherStm = new EscherStm(dir); + escherDelayStm = new EscherDelayStm(dir); } public MainContents getMainContents() { diff --git a/src/scratchpad/src/org/apache/poi/hpbf/extractor/PublisherTextExtractor.java b/src/scratchpad/src/org/apache/poi/hpbf/extractor/PublisherTextExtractor.java index 5a1c1f43d6..e0db9df379 100644 --- a/src/scratchpad/src/org/apache/poi/hpbf/extractor/PublisherTextExtractor.java +++ b/src/scratchpad/src/org/apache/poi/hpbf/extractor/PublisherTextExtractor.java @@ -33,22 +33,26 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem; * Extract text from HPBF Publisher files */ public final class PublisherTextExtractor extends POIOLE2TextExtractor { - private HPBFDocument doc; - private boolean hyperlinksByDefault = false; + private HPBFDocument doc; + private boolean hyperlinksByDefault = false; - public PublisherTextExtractor(HPBFDocument doc) { - super(doc); - this.doc = doc; - } + public PublisherTextExtractor(HPBFDocument doc) { + super(doc); + this.doc = doc; + } + public PublisherTextExtractor(DirectoryNode dir) throws IOException { + this(new HPBFDocument(dir)); + } + public PublisherTextExtractor(POIFSFileSystem fs) throws IOException { + this(new HPBFDocument(fs)); + } + public PublisherTextExtractor(InputStream is) throws IOException { + this(new POIFSFileSystem(is)); + } + @Deprecated public PublisherTextExtractor(DirectoryNode dir, POIFSFileSystem fs) throws IOException { this(new HPBFDocument(dir, fs)); } - public PublisherTextExtractor(POIFSFileSystem fs) throws IOException { - this(new HPBFDocument(fs)); - } - public PublisherTextExtractor(InputStream is) throws IOException { - this(new POIFSFileSystem(is)); - } /** * Should a call to getText() return hyperlinks inline diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/extractor/TextPublisherTextExtractor.java b/src/scratchpad/testcases/org/apache/poi/hpbf/extractor/TestPublisherTextExtractor.java similarity index 97% rename from src/scratchpad/testcases/org/apache/poi/hpbf/extractor/TextPublisherTextExtractor.java rename to src/scratchpad/testcases/org/apache/poi/hpbf/extractor/TestPublisherTextExtractor.java index fd3c97fe72..a14de3c55e 100644 --- a/src/scratchpad/testcases/org/apache/poi/hpbf/extractor/TextPublisherTextExtractor.java +++ b/src/scratchpad/testcases/org/apache/poi/hpbf/extractor/TestPublisherTextExtractor.java @@ -18,14 +18,13 @@ package org.apache.poi.hpbf.extractor; import java.io.File; -import java.io.FileInputStream; - -import org.apache.poi.hpbf.HPBFDocument; -import org.apache.poi.POIDataSamples; import junit.framework.TestCase; -public final class TextPublisherTextExtractor extends TestCase { +import org.apache.poi.POIDataSamples; +import org.apache.poi.hpbf.HPBFDocument; + +public final class TestPublisherTextExtractor extends TestCase { private static final POIDataSamples _samples = POIDataSamples.getPublisherInstance(); public void testBasics() throws Exception {