Author: nick Date: Mon Jun 12 08:16:44 2006 New Revision: 413678 URL: http://svn.apache.org/viewvc?rev=413678&view=rev Log: New dev program for helping us understand how SlideListWithTexts interact
Added: jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/dev/SLWTListing.java Modified: jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/dev/SLWTTextListing.java Added: jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/dev/SLWTListing.java URL: http://svn.apache.org/viewvc/jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/dev/SLWTListing.java?rev=413678&view=auto ============================================================================== --- jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/dev/SLWTListing.java (added) +++ jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/dev/SLWTListing.java Mon Jun 12 08:16:44 2006 @@ -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 + ")"); + } + } + } + } + } +} Modified: jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/dev/SLWTTextListing.java URL: http://svn.apache.org/viewvc/jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/dev/SLWTTextListing.java?rev=413678&r1=413677&r2=413678&view=diff ============================================================================== --- jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/dev/SLWTTextListing.java (original) +++ jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/dev/SLWTTextListing.java Mon Jun 12 08:16:44 2006 @@ -43,7 +43,7 @@ // 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++) { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] Mailing List: http://jakarta.apache.org/site/mail2.html#poi The Apache Jakarta POI Project: http://jakarta.apache.org/poi/