New dev program for helping us understand how SlideListWithTexts interact
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@413678 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a12a110062
commit
aebc06f029
91
src/scratchpad/src/org/apache/poi/hslf/dev/SLWTListing.java
Normal file
91
src/scratchpad/src/org/apache/poi/hslf/dev/SLWTListing.java
Normal file
@ -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 + ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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++) {
|
||||
|
Loading…
Reference in New Issue
Block a user