]> source.dussan.org Git - poi.git/commitdiff
New dev program for helping us understand how SlideListWithTexts interact
authorNick Burch <nick@apache.org>
Mon, 12 Jun 2006 15:16:44 +0000 (15:16 +0000)
committerNick Burch <nick@apache.org>
Mon, 12 Jun 2006 15:16:44 +0000 (15:16 +0000)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@413678 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/src/org/apache/poi/hslf/dev/SLWTListing.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/dev/SLWTTextListing.java

diff --git a/src/scratchpad/src/org/apache/poi/hslf/dev/SLWTListing.java b/src/scratchpad/src/org/apache/poi/hslf/dev/SLWTListing.java
new file mode 100644 (file)
index 0000000..c5db484
--- /dev/null
@@ -0,0 +1,91 @@
+
+/* ====================================================================
+   Copyright 2002-2004   Apache Software Foundation
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+
+
+package org.apache.poi.hslf.dev;
+
+import org.apache.poi.hslf.HSLFSlideShow;
+import org.apache.poi.hslf.record.Document;
+import org.apache.poi.hslf.record.Record;
+import org.apache.poi.hslf.record.RecordTypes;
+import org.apache.poi.hslf.record.SlideListWithText;
+
+/**
+ * Uses record level code to Documents.
+ * Having found them, it sees if they have any SlideListWithTexts,
+ *  and reports how many, and what sorts of things they contain
+ */
+public class SLWTListing {
+       public static void main(String[] args) throws Exception {
+               if(args.length < 1) {
+                       System.err.println("Need to give a filename");
+                       System.exit(1);
+               }
+
+               HSLFSlideShow ss = new HSLFSlideShow(args[0]);
+
+               // Find the documents, and then their SLWT
+               Record[] records = ss.getRecords();
+               for(int i=0; i<records.length; i++) {
+                       if(records[i] instanceof Document) {
+                               Document doc = (Document)records[i];
+                               SlideListWithText[] slwts = doc.getSlideListWithTexts();
+                               
+                               System.out.println("Document at " + i + " had " + slwts.length + " SlideListWithTexts");
+                               if(slwts.length == 0) {
+                                       System.err.println("** Warning: Should have had at least 1! **");
+                               }
+                               if(slwts.length > 3) {
+                                       System.err.println("** Warning: Shouldn't have more than 3!");
+                               }
+                               
+                               // Check the SLWTs contain what we'd expect
+                               for(int j=0; j<slwts.length; j++) {
+                                       SlideListWithText slwt = slwts[j];
+                                       Record[] children = slwt.getChildRecords();
+                                       
+                                       System.out.println(" - SLWT at " + j + " had " + children.length + " children:");
+                                       
+                                       // Should only have SlideAtomSets if the second one
+                                       int numSAS = slwt.getSlideAtomsSets().length;
+                                       if(j == 1) {
+                                               if(numSAS == 0) {
+                                                       System.err.println("  ** 2nd SLWT didn't have any SlideAtomSets!");
+                                               } else {
+                                                       System.out.println("  - Contains " + numSAS + " SlideAtomSets");
+                                               }
+                                       } else {
+                                               if(numSAS > 0) {
+                                                       System.err.println("  ** SLWT " + j + " had " + numSAS + " SlideAtomSets! (expected 0)");
+                                               }
+                                       }
+                                       
+                                       // Report the first 5 children, to give a flavour
+                                       int upTo = 5;
+                                       if(children.length < 5) { upTo = children.length; }
+                                       for(int k=0; k<upTo; k++) {
+                                               Record r = children[k];
+                                               int typeID = (int)r.getRecordType();
+                                               String typeName = RecordTypes.recordName(typeID);
+                                               System.out.println("   - " + typeID + " (" + typeName + ")");
+                                       }
+                               }
+                       }
+               }
+       }
+}
index b0c42912f66270230018641cc5fee3494134038f..47add9ff6bed2d76a8cfedcb5a01d62418826528 100644 (file)
@@ -43,7 +43,7 @@ public class SLWTTextListing {
                // Find the documents, and then their SLWT
                Record[] records = ss.getRecords();
                for(int i=0; i<records.length; i++) {
-                       if(records[i].getRecordType() == 1000l) {
+                       if(records[i] instanceof Document) {
                                Record docRecord = records[i];
                                Record[] docChildren = docRecord.getChildRecords();
                                for(int j=0; j<docChildren.length; j++) {