]> source.dussan.org Git - poi.git/commitdiff
JDK 1.4 compatibility. Some exception clean-up
authorJosh Micich <josh@apache.org>
Thu, 7 Aug 2008 20:23:26 +0000 (20:23 +0000)
committerJosh Micich <josh@apache.org>
Thu, 7 Aug 2008 20:23:26 +0000 (20:23 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@683699 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/src/org/apache/poi/hslf/HSLFSlideShow.java
src/scratchpad/src/org/apache/poi/hslf/dev/SlideShowRecordDumper.java
src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java
src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java
src/scratchpad/testcases/org/apache/poi/hslf/extractor/TextExtractor.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestOleEmbedding.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestAddingSlides.java

index dc967fd5b4a3c46f6583247720f85421e1e206ef..217ab7bc88458e9a186772f28645efd66379c399 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +14,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
-
 
 package org.apache.poi.hslf;
 
@@ -27,7 +24,12 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
 
 import org.apache.poi.POIDocument;
 import org.apache.poi.hslf.exceptions.CorruptPowerPointFileException;
@@ -36,7 +38,6 @@ import org.apache.poi.hslf.exceptions.HSLFException;
 import org.apache.poi.hslf.record.*;
 import org.apache.poi.hslf.usermodel.ObjectData;
 import org.apache.poi.hslf.usermodel.PictureData;
-import org.apache.poi.hslf.model.Shape;
 import org.apache.poi.poifs.filesystem.DirectoryNode;
 import org.apache.poi.poifs.filesystem.DocumentEntry;
 import org.apache.poi.poifs.filesystem.DocumentInputStream;
@@ -51,14 +52,10 @@ import org.apache.poi.util.POILogger;
  *
  * @author Nick Burch
  */
-
-public class HSLFSlideShow extends POIDocument
-{
+public final class HSLFSlideShow extends POIDocument {
     // For logging
     private POILogger logger = POILogFactory.getLogger(this.getClass());
 
-       private InputStream istream;
-
        // Holds metadata on where things are in our document
        private CurrentUserAtom currentUser;
 
@@ -101,11 +98,9 @@ public class HSLFSlideShow extends POIDocument
         * @param inputStream the source of the data
         * @throws IOException if there is a problem while parsing the document.
         */
-       public HSLFSlideShow(InputStream inputStream) throws IOException
-       {
+       public HSLFSlideShow(InputStream inputStream) throws IOException {
                //do Ole stuff
                this(new POIFSFileSystem(inputStream));
-               istream = inputStream;
        }
 
        /**
@@ -160,29 +155,21 @@ public class HSLFSlideShow extends POIDocument
                // Look for Picture Streams:
                readPictures();
        }
-
        /**
         * Constructs a new, empty, Powerpoint document.
         */
-       public HSLFSlideShow() throws IOException 
-       {
-               this(HSLFSlideShow.class.getResourceAsStream("/org/apache/poi/hslf/data/empty.ppt"));
-       }
-
-       /**
-        * Shuts things down. Closes underlying streams etc
-        *
-        * @throws IOException
-        */
-       public void close() throws IOException
-       {
-               if(istream != null) {
-                       istream.close();
+       public static final HSLFSlideShow create() {
+               InputStream is = HSLFSlideShow.class.getResourceAsStream("data/empty.ppt");
+               if (is == null) {
+                       throw new RuntimeException("Missing resource 'empty.ppt'");
+               }
+               try {
+                       return new HSLFSlideShow(is);
+               } catch (IOException e) {
+                       throw new RuntimeException(e);
                }
-               filesystem = null;
        }
 
-
        /**
         * Extracts the main PowerPoint document stream from the 
         *  POI file, ready to be passed 
index 04ba17ffc15b1c2caa8defec03dea0480f746d02..74b20993a08263c3523d13d36c9dfb8be75011b1 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
-
 
 package org.apache.poi.hslf.dev;
 
-import java.util.*;
-import java.io.*;
-
-import org.apache.poi.ddf.*;
-import org.apache.poi.hslf.*;
-import org.apache.poi.hslf.record.*;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 
-import org.apache.poi.util.LittleEndian;
+import org.apache.poi.hslf.HSLFSlideShow;
+import org.apache.poi.hslf.record.Record;
 
 /**
  * This class provides a way to view the contents of a powerpoint file.
@@ -36,9 +30,7 @@ import org.apache.poi.util.LittleEndian;
  *
  * @author Nick Burch
  */
-
-public class SlideShowRecordDumper
-{
+public final class SlideShowRecordDumper {
   private HSLFSlideShow doc;
 
   /**
@@ -57,7 +49,6 @@ public class SlideShowRecordDumper
        SlideShowRecordDumper foo = new SlideShowRecordDumper(filename);
 
        foo.printDump();
-       foo.close();
   }
 
 
@@ -73,19 +64,6 @@ public class SlideShowRecordDumper
        doc = new HSLFSlideShow(fileName);
   }
 
-  /**
-   * Shuts things down. Closes underlying streams etc
-   *
-   * @throws IOException
-   */
-  public void close() throws IOException
-  {
-       if(doc != null) {
-               doc.close();
-       }
-       doc = null;
-  }
-
 
   public void printDump() throws IOException {
        // Prints out the records in the tree
index 865471eefe745f44618c8da0308b3502722476e4..841bd38f9c785b2c16d287fb40e05b703cd482ae 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
-
 
 package org.apache.poi.hslf.extractor;
 
-import java.io.*;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.HashSet;
 
 import org.apache.poi.POIOLE2TextExtractor;
+import org.apache.poi.hslf.HSLFSlideShow;
+import org.apache.poi.hslf.model.Comment;
+import org.apache.poi.hslf.model.HeadersFooters;
+import org.apache.poi.hslf.model.Notes;
+import org.apache.poi.hslf.model.Slide;
+import org.apache.poi.hslf.model.TextRun;
+import org.apache.poi.hslf.usermodel.SlideShow;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-import org.apache.poi.hslf.*;
-import org.apache.poi.hslf.model.*;
-import org.apache.poi.hslf.record.Comment2000;
-import org.apache.poi.hslf.record.Record;
-import org.apache.poi.hslf.usermodel.*;
 
 /**
  * This class can be used to extract text from a PowerPoint file.
@@ -37,9 +38,7 @@ import org.apache.poi.hslf.usermodel.*;
  *
  * @author Nick Burch
  */
-
-public class PowerPointExtractor extends POIOLE2TextExtractor
-{
+public final class PowerPointExtractor extends POIOLE2TextExtractor {
        private HSLFSlideShow _hslfshow;
        private SlideShow _show;
        private Slide[] _slides;
@@ -74,7 +73,6 @@ public class PowerPointExtractor extends POIOLE2TextExtractor
 
        PowerPointExtractor ppe = new PowerPointExtractor(file);
        System.out.println(ppe.getText(true,notes,comments));
-       ppe.close();
   }
 
        /**
@@ -110,16 +108,6 @@ public class PowerPointExtractor extends POIOLE2TextExtractor
                _slides = _show.getSlides();
        }
 
-       /**
-        * Shuts down the underlying streams
-        */
-       public void close() throws IOException {
-               _hslfshow.close();
-               _hslfshow = null;
-               _show = null;
-               _slides = null;
-       }
-
        /**
         * Should a call to getText() return slide text?
         * Default is yes
index f38cc7716d05f40a2cd83ee72a7fa0c67f903d24..1b2b9f5eeb6bab497519c70b78c3a8565c402334 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
-
 
 package org.apache.poi.hslf.usermodel;
 
-import java.util.*;
 import java.awt.Dimension;
-import java.io.*;
-
-import org.apache.poi.ddf.*;
-import org.apache.poi.hslf.*;
-import org.apache.poi.hslf.model.*;
-import org.apache.poi.hslf.model.Notes;
-import org.apache.poi.hslf.model.Slide;
-import org.apache.poi.hslf.record.SlideListWithText.*;
-import org.apache.poi.hslf.record.*;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.List;
+
+import org.apache.poi.ddf.EscherBSERecord;
+import org.apache.poi.ddf.EscherContainerRecord;
+import org.apache.poi.ddf.EscherOptRecord;
+import org.apache.poi.ddf.EscherRecord;
+import org.apache.poi.hslf.HSLFSlideShow;
 import org.apache.poi.hslf.exceptions.CorruptPowerPointFileException;
 import org.apache.poi.hslf.exceptions.HSLFException;
+import org.apache.poi.hslf.model.HeadersFooters;
+import org.apache.poi.hslf.model.Notes;
+import org.apache.poi.hslf.model.PPFont;
+import org.apache.poi.hslf.model.Picture;
+import org.apache.poi.hslf.model.Shape;
+import org.apache.poi.hslf.model.Slide;
+import org.apache.poi.hslf.model.SlideMaster;
+import org.apache.poi.hslf.model.TitleMaster;
+import org.apache.poi.hslf.record.Document;
+import org.apache.poi.hslf.record.DocumentAtom;
+import org.apache.poi.hslf.record.FontCollection;
+import org.apache.poi.hslf.record.FontEntityAtom;
+import org.apache.poi.hslf.record.HeadersFootersContainer;
+import org.apache.poi.hslf.record.ParentAwareRecord;
+import org.apache.poi.hslf.record.PersistPtrHolder;
+import org.apache.poi.hslf.record.PositionDependentRecord;
+import org.apache.poi.hslf.record.PositionDependentRecordContainer;
+import org.apache.poi.hslf.record.Record;
+import org.apache.poi.hslf.record.RecordContainer;
+import org.apache.poi.hslf.record.RecordTypes;
+import org.apache.poi.hslf.record.SlideListWithText;
+import org.apache.poi.hslf.record.SlidePersistAtom;
+import org.apache.poi.hslf.record.UserEditAtom;
+import org.apache.poi.hslf.record.SlideListWithText.SlideAtomsSet;
 import org.apache.poi.util.ArrayUtil;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
@@ -48,9 +76,7 @@ import org.apache.poi.util.POILogger;
  * @author Nick Burch
  * @author Yegor kozlov
  */
-
-public class SlideShow
-{
+public final class SlideShow {
   // What we're based on
   private HSLFSlideShow _hslfSlideShow;
 
@@ -90,8 +116,7 @@ public class SlideShow
    *
    * @param hslfSlideShow the HSLFSlideShow to base on
    */
-  public SlideShow(HSLFSlideShow hslfSlideShow) throws IOException
-  {
+  public SlideShow(HSLFSlideShow hslfSlideShow) {
        // Get useful things from our base slideshow
     _hslfSlideShow = hslfSlideShow;
        _records = _hslfSlideShow.getRecords();
@@ -111,8 +136,8 @@ public class SlideShow
   /**
    * Constructs a new, empty, Powerpoint document.
    */
-  public SlideShow() throws IOException {
-       this(new HSLFSlideShow());
+  public SlideShow() {
+       this(HSLFSlideShow.create());
   }
 
     /**
index fe995fe12115c0d80cae4ca10c09646d3a91602a..13bd1df62ba103467244e430da4aa7e4035b8c60 100644 (file)
@@ -229,12 +229,12 @@ public class TextExtractor extends TestCase {
                ppe = new PowerPointExtractor(filename);
 
                String text = ppe.getText();
-               assertFalse("Comments not in by default", text.contains("This is a test comment"));
+               assertFalse("Comments not in by default", contains(text, "This is a test comment"));
                
                ppe.setCommentsByDefault(true);
                
                text = ppe.getText();
-               assertTrue("Unable to find expected word in text\n" + text, text.contains("This is a test comment"));
+               assertTrue("Unable to find expected word in text\n" + text, contains(text, "This is a test comment"));
 
                
                // And another file
@@ -242,12 +242,12 @@ public class TextExtractor extends TestCase {
                ppe = new PowerPointExtractor(filename);
 
                text = ppe.getText();
-               assertFalse("Comments not in by default", text.contains("testdoc"));
+               assertFalse("Comments not in by default", contains(text, "testdoc"));
                
                ppe.setCommentsByDefault(true);
                
                text = ppe.getText();
-               assertTrue("Unable to find expected word in text\n" + text, text.contains("testdoc"));
+               assertTrue("Unable to find expected word in text\n" + text, contains(text, "testdoc"));
     }
     
     /**
@@ -266,13 +266,13 @@ public class TextExtractor extends TestCase {
                ppe = new PowerPointExtractor(hslf);
 
                text = ppe.getText();
-               assertFalse("Unable to find expected word in text\n" + text, text.contains("testdoc"));
-        assertFalse("Unable to find expected word in text\n" + text, text.contains("test phrase"));
+               assertFalse("Unable to find expected word in text\n" + text, contains(text, "testdoc"));
+        assertFalse("Unable to find expected word in text\n" + text, contains(text, "test phrase"));
         
         ppe.setNotesByDefault(true);
                text = ppe.getText();
-               assertTrue("Unable to find expected word in text\n" + text, text.contains("testdoc"));
-        assertTrue("Unable to find expected word in text\n" + text, text.contains("test phrase"));
+               assertTrue("Unable to find expected word in text\n" + text, contains(text, "testdoc"));
+        assertTrue("Unable to find expected word in text\n" + text, contains(text, "test phrase"));
 
         
                // And with a footer, also on notes
@@ -285,12 +285,16 @@ public class TextExtractor extends TestCase {
                ppe = new PowerPointExtractor(filename);
 
                text = ppe.getText();
-               assertFalse("Unable to find expected word in text\n" + text, text.contains("testdoc"));
-        assertFalse("Unable to find expected word in text\n" + text, text.contains("test phrase"));
+               assertFalse("Unable to find expected word in text\n" + text, contains(text, "testdoc"));
+        assertFalse("Unable to find expected word in text\n" + text, contains(text, "test phrase"));
 
         ppe.setNotesByDefault(true);
                text = ppe.getText();
-               assertTrue("Unable to find expected word in text\n" + text, text.contains("testdoc"));
-        assertTrue("Unable to find expected word in text\n" + text, text.contains("test phrase"));
+               assertTrue("Unable to find expected word in text\n" + text, contains(text, "testdoc"));
+        assertTrue("Unable to find expected word in text\n" + text, contains(text, "test phrase"));
     }
+
+       private static boolean contains(String text, String searchString) {
+               return text.indexOf(searchString) >=0;
+       }
 }
index cb177048ba16e3950ad7ab4efa207bfb6e1c67da..ae6f752ab2752fc4b0b0ae5b70ba14e78604bc57 100644 (file)
@@ -1,4 +1,3 @@
-\r
 /* ====================================================================\r
    Licensed to the Apache Software Foundation (ASF) under one or more\r
    contributor license agreements.  See the NOTICE file distributed with\r
    See the License for the specific language governing permissions and\r
    limitations under the License.\r
 ==================================================================== */\r
-        \r
-\r
 \r
 package org.apache.poi.hslf.model;\r
 \r
-import java.io.*;\r
-import java.util.List;\r
-import java.util.ArrayList;\r
+import java.io.File;\r
+import java.io.FileInputStream;\r
+\r
+import junit.framework.TestCase;\r
 \r
 import org.apache.poi.hslf.HSLFSlideShow;\r
 import org.apache.poi.hslf.usermodel.ObjectData;\r
 import org.apache.poi.hslf.usermodel.PictureData;\r
 import org.apache.poi.hslf.usermodel.SlideShow;\r
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;\r
 import org.apache.poi.hssf.usermodel.HSSFSheet;\r
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;\r
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;\r
 import org.apache.poi.hwpf.HWPFDocument;\r
-import org.apache.poi.hwpf.usermodel.Range;\r
-import org.apache.poi.hwpf.usermodel.Paragraph;\r
-\r
-import junit.framework.TestCase;\r
 \r
-public class TestOleEmbedding extends TestCase\r
-{\r
+public final class TestOleEmbedding extends TestCase {\r
     /**\r
      * Tests support for OLE objects.\r
      *\r
      * @throws Exception if an error occurs.\r
      */\r
-    public void testOleEmbedding2003() throws Exception\r
-    {\r
+    public void testOleEmbedding2003() throws Exception {\r
         String dirname = System.getProperty("HSLF.testdata.path");\r
         File file = new File(dirname, "ole2-embedding-2003.ppt");\r
         HSLFSlideShow slideShow = new HSLFSlideShow(new FileInputStream(file));\r
-        try\r
-        {\r
-            // Placeholder EMFs for clients that don't support the OLE components.\r
-            PictureData[] pictures = slideShow.getPictures();\r
-            assertEquals("Should be two pictures", 2, pictures.length);\r
-            //assertDigestEquals("Wrong data for picture 1", "8d1fbadf4814f321bb1ccdd056e3c788", pictures[0].getData());\r
-            //assertDigestEquals("Wrong data for picture 2", "987a698e83559cf3d38a0deeba1cc63b", pictures[1].getData());\r
+        // Placeholder EMFs for clients that don't support the OLE components.\r
+        PictureData[] pictures = slideShow.getPictures();\r
+        assertEquals("Should be two pictures", 2, pictures.length);\r
+        //assertDigestEquals("Wrong data for picture 1", "8d1fbadf4814f321bb1ccdd056e3c788", pictures[0].getData());\r
+        //assertDigestEquals("Wrong data for picture 2", "987a698e83559cf3d38a0deeba1cc63b", pictures[1].getData());\r
 \r
-            // Actual embedded objects.\r
-            ObjectData[] objects = slideShow.getEmbeddedObjects();\r
-            assertEquals("Should be two objects", 2, objects.length);\r
-            //assertDigestEquals("Wrong data for objecs 1", "0d1fcc61a83de5c4894dc0c88e9a019d", objects[0].getData());\r
-            //assertDigestEquals("Wrong data for object 2", "b323604b2003a7299c77c2693b641495", objects[1].getData());\r
-        }\r
-        finally\r
-        {\r
-            slideShow.close();\r
-        }\r
+        // Actual embedded objects.\r
+        ObjectData[] objects = slideShow.getEmbeddedObjects();\r
+        assertEquals("Should be two objects", 2, objects.length);\r
+        //assertDigestEquals("Wrong data for objecs 1", "0d1fcc61a83de5c4894dc0c88e9a019d", objects[0].getData());\r
+        //assertDigestEquals("Wrong data for object 2", "b323604b2003a7299c77c2693b641495", objects[1].getData());\r
     }\r
 \r
     public void testOLEShape() throws Exception {\r
index 5e63ea9908c3001b7976b6b346727a94f205fbab..02c6beb53b046f826682ebe1e6f7de0f72a199ac 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +14,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
-
 
 package org.apache.poi.hslf.usermodel;
 
@@ -36,7 +33,7 @@ import org.apache.poi.hslf.model.*;
  *
  * @author Nick Burch (nick at torchbox dot com)
  */
-public class TestAddingSlides extends TestCase {
+public final class TestAddingSlides extends TestCase {
        // An empty SlideShow
        private HSLFSlideShow hss_empty;
        private SlideShow ss_empty;
@@ -53,7 +50,7 @@ public class TestAddingSlides extends TestCase {
         * Create/open the slideshows
         */
        public void setUp() throws Exception {
-               hss_empty = new HSLFSlideShow();
+               hss_empty = HSLFSlideShow.create();
                ss_empty = new SlideShow(hss_empty);
                
                String dirname = System.getProperty("HSLF.testdata.path");
@@ -82,8 +79,8 @@ public class TestAddingSlides extends TestCase {
         Record[] _records = hss_empty.getRecords();
         for (int i = 0; i < _records.length; i++) {
             Record record = _records[i];
-            if(_records[i].getRecordType() == RecordTypes.UserEditAtom.typeID) {
-                usredit = (UserEditAtom)_records[i];
+            if(record.getRecordType() == RecordTypes.UserEditAtom.typeID) {
+                usredit = (UserEditAtom)record;
             }
        }
        assertNotNull(usredit);