Fix generics warnings, and make the NPOIFS and deprecated constructor parts of Publisher clearer and consistent with other parts

Also fix a test filename


git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1085443 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2011-03-25 16:06:11 +00:00
parent 78bcc564f4
commit 535e69dea4
5 changed files with 62 additions and 54 deletions

View File

@ -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<String> 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<String> excepts) throws IOException {
//System.err.println("CopyNodes called");
DirectoryEntry root = source.getRoot();
DirectoryEntry newRoot = target.getRoot();
Iterator entries = root.getEntries();
Iterator<Entry> 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<Entry> entries = ((DirectoryEntry)entry).getEntries();
while (entries.hasNext()) {
copyNodeRecursively((Entry)entries.next(),newTarget);
copyNodeRecursively(entries.next(),newTarget);
}
} else {
DocumentEntry dentry = (DocumentEntry)entry;

View File

@ -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<String> excepts = new ArrayList<String>(1);
// Write out the Workbook stream
fs.createDocument(new ByteArrayInputStream(bytes), "Workbook");

View File

@ -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() {

View File

@ -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

View File

@ -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 {