]> source.dussan.org Git - poi.git/commitdiff
Convert HWPFDocument to having POIDocument as its parent
authorNick Burch <nick@apache.org>
Tue, 4 Apr 2006 17:02:14 +0000 (17:02 +0000)
committerNick Burch <nick@apache.org>
Tue, 4 Apr 2006 17:02:14 +0000 (17:02 +0000)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@391365 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/src/org/apache/poi/hwpf/HWPFDocument.java
src/scratchpad/testcases/org/apache/poi/TestPOIDocument.java

index e2fb4f3f7bd9e4644786a5aa312e35e456969031..72cbc6180303662a3c04a70489949977c8b9666a 100644 (file)
@@ -22,18 +22,13 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.ByteArrayInputStream;
-import java.io.FileOutputStream;
 
 import java.util.Iterator;
 
+import org.apache.poi.POIDocument;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.poifs.filesystem.DocumentEntry;
 import org.apache.poi.poifs.common.POIFSConstants;
-import org.apache.poi.hwpf.usermodel.CharacterRun;
-import org.apache.poi.hwpf.usermodel.Paragraph;
-import org.apache.poi.hwpf.usermodel.TableProperties;
-import org.apache.poi.hwpf.sprm.TableSprmUncompressor;
-import org.apache.poi.hwpf.sprm.ParagraphSprmUncompressor;
 
 import org.apache.poi.hwpf.model.*;
 import org.apache.poi.hwpf.model.io.*;
@@ -47,7 +42,7 @@ import org.apache.poi.hwpf.usermodel.*;
  *
  * @author Ryan Ackley
  */
-public class HWPFDocument
+public class HWPFDocument extends POIDocument
 //  implements Cloneable
 {
   /** The FIB*/
@@ -110,12 +105,16 @@ public class HWPFDocument
   /**
    * This constructor loads a Word document from a POIFSFileSystem
    *
-   * @param filesystem The POIFSFileSystem that contains the Word document.
+   * @param pfilesystem The POIFSFileSystem that contains the Word document.
    * @throws IOException If there is an unexpected IOException from the passed
    *         in POIFSFileSystem.
    */
-  public HWPFDocument(POIFSFileSystem filesystem) throws IOException
+  public HWPFDocument(POIFSFileSystem pfilesystem) throws IOException
   {
+    // Sort out the hpsf properties
+    filesystem = pfilesystem;
+    readProperties();
+    
     // read in the main stream.
     DocumentEntry documentProps =
        (DocumentEntry)filesystem.getRoot().getEntry("WordDocument");
index 7db746d3baf7ea757af8b4abf94b799fef4348d1..bd66355e2e312fc8e857a8270e3c0ac450d14b50 100644 (file)
@@ -24,6 +24,7 @@ import junit.framework.TestCase;
 import java.io.*;
 
 import org.apache.poi.hslf.HSLFSlideShow;
+import org.apache.poi.hwpf.HWPFDocument;
 import org.apache.poi.poifs.filesystem.*;
 
 /**
@@ -33,20 +34,30 @@ import org.apache.poi.poifs.filesystem.*;
  * @author Nick Burch (nick at torchbox dot com)
  */
 public class TestPOIDocument extends TestCase {
-       // The POI Document to work on
+       // The POI Documents to work on
        private POIDocument doc;
-       // POIFS primed on the test (powerpoint) data
+       private POIDocument doc2;
+       // POIFS primed on the test (powerpoint and word) data
        private POIFSFileSystem pfs;
+       private POIFSFileSystem pfs2;
 
        /**
-        * Set things up, using a PowerPoint document for our testing
+        * Set things up, using a PowerPoint document and 
+        *  a Word Document for our testing
         */
     public void setUp() throws Exception {
-               String dirname = System.getProperty("HSLF.testdata.path");
-               String filename = dirname + "/basic_test_ppt_file.ppt";
-               FileInputStream fis = new FileInputStream(filename);
-               pfs = new POIFSFileSystem(fis);
+               String dirnameHSLF = System.getProperty("HSLF.testdata.path");
+               String filenameHSLF = dirnameHSLF + "/basic_test_ppt_file.ppt";
+               String dirnameHWPF = System.getProperty("HWPF.testdata.path");
+               String filenameHWPF = dirnameHWPF + "/test2.doc";
+               
+               FileInputStream fisHSLF = new FileInputStream(filenameHSLF);
+               pfs = new POIFSFileSystem(fisHSLF);
                doc = new HSLFSlideShow(pfs);
+               
+               FileInputStream fisHWPF = new FileInputStream(filenameHWPF);
+               pfs2 = new POIFSFileSystem(fisHWPF);
+               doc2 = new HWPFDocument(pfs2);
        }
     
     public void testReadProperties() throws Exception {
@@ -58,6 +69,16 @@ public class TestPOIDocument extends TestCase {
        assertEquals("Hogwarts", doc.getSummaryInformation().getAuthor());
        assertEquals(10598, doc.getDocumentSummaryInformation().getByteCount());
     }
+       
+    public void testReadProperties2() throws Exception {       
+       // Check again on the word one
+       assertNotNull(doc2.getDocumentSummaryInformation());
+       assertNotNull(doc2.getSummaryInformation());
+       
+       assertEquals("Hogwarts", doc2.getSummaryInformation().getAuthor());
+       assertEquals("", doc2.getSummaryInformation().getKeywords());
+       assertEquals(0, doc2.getDocumentSummaryInformation().getByteCount());
+    }
 
     public void testWriteProperties() throws Exception {
        // Just check we can write them back out into a filesystem