import java.io.InputStream;
import java.io.OutputStream;
import java.util.Iterator;
+import java.util.List;
import org.apache.poi.hwpf.model.CHPBinTable;
import org.apache.poi.hwpf.model.CPSplitCalculator;
*/
public int characterLength()
{
- java.util.List textPieces = _tpt.getTextPieces();
- Iterator textIt = textPieces.iterator();
+ List<TextPiece> textPieces = _tpt.getTextPieces();
+ Iterator<TextPiece> textIt = textPieces.iterator();
int length = 0;
while(textIt.hasNext())
{
- TextPiece tp = (TextPiece)textIt.next();
+ TextPiece tp = textIt.next();
length += tp.characterLength();
}
return length;
import java.util.List;
import java.util.ArrayList;
-import java.util.Iterator;
import org.apache.poi.ddf.DefaultEscherRecordFactory;
import org.apache.poi.ddf.EscherBSERecord;
import org.apache.poi.ddf.EscherBlipRecord;
* @param escherRecords the escher records.
* @param pictures the list to populate with the pictures.
*/
- private void searchForPictures(List escherRecords, List pictures)
+ private void searchForPictures(List<EscherRecord> escherRecords, List<Picture> pictures)
{
- Iterator recordIter = escherRecords.iterator();
- while (recordIter.hasNext())
- {
- Object obj = recordIter.next();
- if (obj instanceof EscherRecord)
- {
- EscherRecord escherRecord = (EscherRecord) obj;
-
- if (escherRecord instanceof EscherBSERecord)
- {
- EscherBSERecord bse = (EscherBSERecord) escherRecord;
- EscherBlipRecord blip = bse.getBlipRecord();
- if (blip != null)
- {
- pictures.add(new Picture(blip.getPicturedata()));
- }
- else if (bse.getOffset() > 0)
- {
- // Blip stored in delay stream, which in a word doc, is the main stream
- EscherRecordFactory recordFactory = new DefaultEscherRecordFactory();
- EscherRecord record = recordFactory.createRecord(_mainStream, bse.getOffset());
-
- if (record instanceof EscherBlipRecord) {
- record.fillFields(_mainStream, bse.getOffset(), recordFactory);
- blip = (EscherBlipRecord) record;
- pictures.add(new Picture(blip.getPicturedata()));
- }
- }
- }
-
- // Recursive call.
- searchForPictures(escherRecord.getChildRecords(), pictures);
- }
- }
+ for(EscherRecord escherRecord : escherRecords) {
+ if (escherRecord instanceof EscherBSERecord) {
+ EscherBSERecord bse = (EscherBSERecord) escherRecord;
+ EscherBlipRecord blip = bse.getBlipRecord();
+ if (blip != null)
+ {
+ pictures.add(new Picture(blip.getPicturedata()));
+ }
+ else if (bse.getOffset() > 0)
+ {
+ // Blip stored in delay stream, which in a word doc, is the main stream
+ EscherRecordFactory recordFactory = new DefaultEscherRecordFactory();
+ EscherRecord record = recordFactory.createRecord(_mainStream, bse.getOffset());
+
+ if (record instanceof EscherBlipRecord) {
+ record.fillFields(_mainStream, bse.getOffset(), recordFactory);
+ blip = (EscherBlipRecord) record;
+ pictures.add(new Picture(blip.getPicturedata()));
+ }
+ }
+ }
+
+ // Recursive call.
+ searchForPictures(escherRecord.getChildRecords(), pictures);
+ }
}
/**
*
* @return a list of Picture objects found in current document
*/
- public List getAllPictures() {
- ArrayList pictures = new ArrayList();
+ public List<Picture> getAllPictures() {
+ ArrayList<Picture> pictures = new ArrayList<Picture>();
Range range = _document.getOverallRange();
for (int i = 0; i < range.numCharacterRuns(); i++) {
* Test just opening the files
*/
public void testOpen() {
- HWPFDocument docA = HWPFTestDataSamples.openSampleFile(docAFile);
- HWPFDocument docB = HWPFTestDataSamples.openSampleFile(docBFile);
+ HWPFTestDataSamples.openSampleFile(docAFile);
+ HWPFTestDataSamples.openSampleFile(docBFile);
}
/**
PicturesTable picA = docA.getPicturesTable();
PicturesTable picB = docB.getPicturesTable();
- List picturesA = picA.getAllPictures();
- List picturesB = picB.getAllPictures();
+ List<Picture> picturesA = picA.getAllPictures();
+ List<Picture> picturesB = picB.getAllPictures();
assertEquals(7, picturesA.size());
assertEquals(2, picturesB.size());
public void testImageData() {
HWPFDocument docB = HWPFTestDataSamples.openSampleFile(docBFile);
PicturesTable picB = docB.getPicturesTable();
- List picturesB = picB.getAllPictures();
+ List<Picture> picturesB = picB.getAllPictures();
assertEquals(2, picturesB.size());
- Picture pic1 = (Picture)picturesB.get(0);
- Picture pic2 = (Picture)picturesB.get(1);
+ Picture pic1 = picturesB.get(0);
+ Picture pic2 = picturesB.get(1);
assertNotNull(pic1);
assertNotNull(pic2);
public void testCompressedImageData() {
HWPFDocument docC = HWPFTestDataSamples.openSampleFile(docCFile);
PicturesTable picC = docC.getPicturesTable();
- List picturesC = picC.getAllPictures();
+ List<Picture> picturesC = picC.getAllPictures();
assertEquals(1, picturesC.size());
- Picture pic = (Picture)picturesC.get(0);
+ Picture pic = picturesC.get(0);
assertNotNull(pic);
// Check the same
*/
public void BROKENtestEscherDrawing() {
HWPFDocument docD = HWPFTestDataSamples.openSampleFile(docDFile);
- List allPictures = docD.getPicturesTable().getAllPictures();
+ List<Picture> allPictures = docD.getPicturesTable().getAllPictures();
assertEquals(1, allPictures.size());
- Picture pic = (Picture) allPictures.get(0);
+ Picture pic = allPictures.get(0);
assertNotNull(pic);
byte[] picD = readFile(imgDFile);