]> source.dussan.org Git - poi.git/commitdiff
Replace HWPFOutputStream with ByteArrayOutputStream - it doesn't add any new features
authorAndreas Beeker <kiwiwings@apache.org>
Tue, 6 Jun 2017 22:21:40 +0000 (22:21 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Tue, 6 Jun 2017 22:21:40 +0000 (22:21 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1797838 13f79535-47bb-0310-9956-ffa450edef68

27 files changed:
src/scratchpad/src/org/apache/poi/hwpf/model/BookmarksTables.java
src/scratchpad/src/org/apache/poi/hwpf/model/CHPBinTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/ComplexFileTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/DocumentProperties.java
src/scratchpad/src/org/apache/poi/hwpf/model/FIBFieldHandler.java
src/scratchpad/src/org/apache/poi/hwpf/model/FieldsTables.java
src/scratchpad/src/org/apache/poi/hwpf/model/FileInformationBlock.java
src/scratchpad/src/org/apache/poi/hwpf/model/FontTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/LFOData.java
src/scratchpad/src/org/apache/poi/hwpf/model/ListTables.java
src/scratchpad/src/org/apache/poi/hwpf/model/NotesTables.java
src/scratchpad/src/org/apache/poi/hwpf/model/PAPBinTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/PAPFormattedDiskPage.java
src/scratchpad/src/org/apache/poi/hwpf/model/PlfLfo.java
src/scratchpad/src/org/apache/poi/hwpf/model/RevisionMarkAuthorTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/SavedByTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/SectionTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/SttbUtils.java
src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java
src/scratchpad/src/org/apache/poi/hwpf/model/TextPieceTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/io/HWPFFileSystem.java
src/scratchpad/src/org/apache/poi/hwpf/model/io/HWPFOutputStream.java [deleted file]
src/scratchpad/testcases/org/apache/poi/hwpf/model/TestFontTable.java
src/scratchpad/testcases/org/apache/poi/hwpf/model/TestListTables.java
src/scratchpad/testcases/org/apache/poi/hwpf/model/TestPAPBinTable.java
src/scratchpad/testcases/org/apache/poi/hwpf/model/TestStyleSheet.java
src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java

index 29910b0b91f1bcb6b05e523a6134f405dded13d2..e860165dff64ac608d9d5f492cd006fed887a3b4 100644 (file)
 ==================================================================== */
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
@@ -148,7 +148,7 @@ public class BookmarksTables
     }
 
     public void writePlcfBkmkf( FileInformationBlock fib,
-            HWPFOutputStream tableStream ) throws IOException
+            ByteArrayOutputStream tableStream ) throws IOException
     {
         if ( descriptorsFirst == null || descriptorsFirst.length() == 0 )
         {
@@ -157,16 +157,16 @@ public class BookmarksTables
             return;
         }
 
-        int start = tableStream.getOffset();
+        int start = tableStream.size();
         tableStream.write( descriptorsFirst.toByteArray() );
-        int end = tableStream.getOffset();
+        int end = tableStream.size();
 
         fib.setFcPlcfbkf( start );
         fib.setLcbPlcfbkf( end - start );
     }
 
     public void writePlcfBkmkl( FileInformationBlock fib,
-            HWPFOutputStream tableStream ) throws IOException
+            ByteArrayOutputStream tableStream ) throws IOException
     {
         if ( descriptorsLim == null || descriptorsLim.length() == 0 )
         {
@@ -175,16 +175,16 @@ public class BookmarksTables
             return;
         }
 
-        int start = tableStream.getOffset();
+        int start = tableStream.size();
         tableStream.write( descriptorsLim.toByteArray() );
-        int end = tableStream.getOffset();
+        int end = tableStream.size();
 
         fib.setFcPlcfbkl( start );
         fib.setLcbPlcfbkl( end - start );
     }
 
     public void writeSttbfBkmk( FileInformationBlock fib,
-            HWPFOutputStream tableStream ) throws IOException
+            ByteArrayOutputStream tableStream ) throws IOException
     {
         if ( names == null || names.isEmpty() )
         {
@@ -193,10 +193,10 @@ public class BookmarksTables
             return;
         }
 
-        int start = tableStream.getOffset();
+        int start = tableStream.size();
         SttbUtils.writeSttbfBkmk( names.toArray( new String[names.size()] ),
                 tableStream );
-        int end = tableStream.getOffset();
+        int end = tableStream.size();
 
         fib.setFcSttbfbkmk( start );
         fib.setLcbSttbfbkmk( end - start );
index ee4a377270943fe68d301145d39a51a82bda6779..b211248cec890d4eb05a4c800fb5068a8a50fb80 100644 (file)
@@ -17,6 +17,7 @@
 
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -31,7 +32,6 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.poi.hwpf.model.io.HWPFFileSystem;
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.hwpf.sprm.SprmBuffer;
 import org.apache.poi.hwpf.sprm.SprmIterator;
 import org.apache.poi.hwpf.sprm.SprmOperation;
@@ -448,14 +448,14 @@ public class CHPBinTable
     public void writeTo( HWPFFileSystem sys, int fcMin,
             CharIndexTranslator translator ) throws IOException
     {
-        HWPFOutputStream docStream = sys.getStream( "WordDocument" );
-        HWPFOutputStream tableStream = sys.getStream( "1Table" );
+        ByteArrayOutputStream docStream = sys.getStream( "WordDocument" );
+        ByteArrayOutputStream tableStream = sys.getStream( "1Table" );
 
         writeTo( docStream, tableStream, fcMin, translator );
     }
 
-    public void writeTo( HWPFOutputStream wordDocumentStream,
-            HWPFOutputStream tableStream, int fcMin,
+    public void writeTo( ByteArrayOutputStream wordDocumentStream,
+            ByteArrayOutputStream tableStream, int fcMin,
             CharIndexTranslator translator ) throws IOException
     {
 
@@ -470,7 +470,7 @@ public class CHPBinTable
         PlexOfCps bte = new PlexOfCps( 4 );
 
     // each FKP must start on a 512 byte page.
-    int docOffset = wordDocumentStream.getOffset();
+    int docOffset = wordDocumentStream.size();
     int mod = docOffset % POIFSConstants.SMALLER_BIG_BLOCK_SIZE;
     if (mod != 0)
     {
@@ -479,7 +479,7 @@ public class CHPBinTable
     }
 
     // get the page number for the first fkp
-    docOffset = wordDocumentStream.getOffset();
+    docOffset = wordDocumentStream.size();
     int pageNum = docOffset/POIFSConstants.SMALLER_BIG_BLOCK_SIZE;
 
         // get the ending fc
index dc530bd647a144ce9d3e726aae333dbc1a8ec336..36792f41e4a1b2f4f609ac84b5c50fef0c0dd920 100644 (file)
 
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.nio.charset.Charset;
 import java.util.LinkedList;
 import java.util.List;
 
 import org.apache.poi.hwpf.model.io.HWPFFileSystem;
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.hwpf.sprm.SprmBuffer;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
@@ -82,14 +82,14 @@ public class ComplexFileTable {
 
     @Deprecated
     public void writeTo(HWPFFileSystem sys) throws IOException {
-        HWPFOutputStream docStream = sys.getStream("WordDocument");
-        HWPFOutputStream tableStream = sys.getStream("1Table");
+        ByteArrayOutputStream docStream = sys.getStream("WordDocument");
+        ByteArrayOutputStream tableStream = sys.getStream("1Table");
 
         writeTo(docStream, tableStream);
     }
 
-    public void writeTo(HWPFOutputStream wordDocumentStream,
-                        HWPFOutputStream tableStream) throws IOException {
+    public void writeTo(ByteArrayOutputStream wordDocumentStream,
+                        ByteArrayOutputStream tableStream) throws IOException {
         tableStream.write(TEXT_PIECE_TABLE_TYPE);
 
         byte[] table = _tpt.writeTo(wordDocumentStream);
index dc2e36641f66efde489214a2d1bba784ac5cf1fa..14c6981e86c8952694b70e121ac1c240e1ddc99a 100644 (file)
@@ -17,9 +17,9 @@
 
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.hwpf.model.types.DOPAbstractType;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
@@ -65,7 +65,7 @@ public final class DocumentProperties extends DOPAbstractType
         super.serialize( data, offset );
     }
 
-    public void writeTo( HWPFOutputStream tableStream ) throws IOException
+    public void writeTo( ByteArrayOutputStream tableStream ) throws IOException
     {
         byte[] supported = new byte[getSize()];
         serialize( supported, 0 );
index ae830f62cd31ca16a5dd2dad81fee4fcc577e843..18543f5e4a377231222ff92cd470a61c0325ad1b 100644 (file)
 
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.POILogFactory;
@@ -223,7 +223,7 @@ public final class FIBFieldHandler
       return _fields.length / 2;
   }
   
-  void writeTo(byte[] mainStream, int offset, HWPFOutputStream tableStream)
+  void writeTo(byte[] mainStream, int offset, ByteArrayOutputStream tableStream)
     throws IOException
   {
     for (int x = 0; x < _fields.length/2; x++)
@@ -231,8 +231,8 @@ public final class FIBFieldHandler
       UnhandledDataStructure ds = _unknownMap.get(Integer.valueOf(x));
       if (ds != null)
       {
-        _fields[x * 2] = tableStream.getOffset();
-        LittleEndian.putInt(mainStream, offset, tableStream.getOffset());
+        _fields[x * 2] = tableStream.size();
+        LittleEndian.putInt(mainStream, offset, tableStream.size());
         offset += LittleEndian.INT_SIZE;
 
         byte[] buf = ds.getBuf();
index 4206ce8343b2e93ed28ca2968aefcd973a427eff..4cc1be93854aeb6136a37d8e2c389a463f754dc9 100644 (file)
 
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.util.Internal;
 
 /**
@@ -131,19 +131,19 @@ public class FieldsTables
     }
 
     private int savePlex( FileInformationBlock fib, FieldsDocumentPart part,
-            PlexOfCps plexOfCps, HWPFOutputStream outputStream )
+            PlexOfCps plexOfCps, ByteArrayOutputStream outputStream )
             throws IOException
     {
         if ( plexOfCps == null || plexOfCps.length() == 0 )
         {
-            fib.setFieldsPlcfOffset( part, outputStream.getOffset() );
+            fib.setFieldsPlcfOffset( part, outputStream.size() );
             fib.setFieldsPlcfLength( part, 0 );
             return 0;
         }
 
         byte[] data = plexOfCps.toByteArray();
 
-        int start = outputStream.getOffset();
+        int start = outputStream.size();
         int length = data.length;
 
         outputStream.write( data );
@@ -154,7 +154,7 @@ public class FieldsTables
         return length;
     }
 
-    public void write( FileInformationBlock fib, HWPFOutputStream tableStream )
+    public void write( FileInformationBlock fib, ByteArrayOutputStream tableStream )
             throws IOException
     {
         for ( FieldsDocumentPart part : FieldsDocumentPart.values() )
index 0c14ca05d5aafd586638cb5feb68fe3ad416e689..6f66e9aefc55f55179a83b6670c36a638ae6805b 100644 (file)
 
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.util.HashSet;
 import java.util.Locale;
 
-import org.apache.poi.EncryptedDocumentException;
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.POILogFactory;
@@ -67,12 +66,6 @@ public final class FileInformationBlock
         offset = FibBase.getSize();
         assert offset == 32;
 
-        if ( _fibBase.isFEncrypted() )
-        {
-            throw new EncryptedDocumentException(
-                    "Cannot process encrypted word file" );
-        }
-
         _csw = LittleEndian.getUShort( mainDocument, offset );
         offset += LittleEndian.SHORT_SIZE;
         assert offset == 34;
@@ -1074,7 +1067,7 @@ public final class FileInformationBlock
                 offset );
     }
 
-    public void writeTo( byte[] mainStream, HWPFOutputStream tableStream )
+    public void writeTo( byte[] mainStream, ByteArrayOutputStream tableStream )
             throws IOException
     {
         _cbRgFcLcb = _fieldHandler.getFieldsCount();
index 6f6d3b9cde120df4c90ce721231d2836b5886de3..dc25a83074984f0753fa4bc9181ab6a7bbc9281c 100644 (file)
 
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
 import org.apache.poi.hwpf.model.io.HWPFFileSystem;
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.POILogFactory;
@@ -118,11 +118,11 @@ public final class FontTable
     @Deprecated
     public void writeTo( HWPFFileSystem sys ) throws IOException
     {
-        HWPFOutputStream tableStream = sys.getStream( "1Table" );
+        ByteArrayOutputStream tableStream = sys.getStream( "1Table" );
         writeTo( tableStream );
     }
 
-    public void writeTo( HWPFOutputStream tableStream ) throws IOException
+    public void writeTo( ByteArrayOutputStream tableStream ) throws IOException
     {
         byte[] buf = new byte[LittleEndian.SHORT_SIZE];
         LittleEndian.putShort(buf, 0, _stringCount);
index 89f822b223c2f79ca11b665e009325c80217d5df..3ee4063211d919dd5550ddb98960c5fde1ea3b2d 100644 (file)
  */
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.Arrays;
 
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 
@@ -80,7 +80,7 @@ public class LFOData
         return result;
     }
 
-    void writeTo( HWPFOutputStream tableStream ) throws IOException
+    void writeTo( ByteArrayOutputStream tableStream ) throws IOException
     {
         LittleEndian.putInt( _cp, tableStream );
         for ( ListFormatOverrideLevel lfolvl : _rgLfoLvl )
index d3865d25ce234ed42b0357a7341b39bd7d64422b..2d28fd0a3df6d5d80e7b1fd03079c6974bdc9e48 100644 (file)
@@ -22,7 +22,6 @@ import java.io.IOException;
 import java.util.LinkedHashMap;
 import java.util.NoSuchElementException;
 
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.POILogFactory;
@@ -81,9 +80,9 @@ public final class ListTables
     }
 
     public void writeListDataTo( FileInformationBlock fib,
-            HWPFOutputStream tableStream ) throws IOException
+            ByteArrayOutputStream tableStream ) throws IOException
     {
-        final int startOffset = tableStream.getOffset();
+        final int startOffset = tableStream.size();
         fib.setFcPlfLst( startOffset );
 
     int listSize = _listMap.size();
@@ -109,12 +108,12 @@ public final class ListTables
          * account for the array of LVLs. -- Page 76 of 621 -- [MS-DOC] --
          * v20110315 Word (.doc) Binary File Format
          */
-        fib.setLcbPlfLst( tableStream.getOffset() - startOffset );
+        fib.setLcbPlfLst( tableStream.size() - startOffset );
         tableStream.write( levelBuf.toByteArray() );
     }
 
     public void writeListOverridesTo( FileInformationBlock fib,
-            HWPFOutputStream tableStream ) throws IOException
+            ByteArrayOutputStream tableStream ) throws IOException
     {
         _plfLfo.writeTo( fib, tableStream );
     }
index eb5a1008c72c4b6f20fe27fa3a43588a95dcfa8e..24b0328b49bcdc9c518fba3a02639264f2d7835a 100644 (file)
@@ -16,9 +16,9 @@
 ==================================================================== */
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.util.Internal;
 
 /**
@@ -82,37 +82,37 @@ public class NotesTables
                     textPositionsStart, textPositionsLength, 0 );
     }
 
-    public void writeRef( FileInformationBlock fib, HWPFOutputStream tableStream )
+    public void writeRef( FileInformationBlock fib, ByteArrayOutputStream tableStream )
             throws IOException
     {
         if ( descriptors == null || descriptors.length() == 0 )
         {
-            fib.setNotesDescriptorsOffset( noteType, tableStream.getOffset() );
+            fib.setNotesDescriptorsOffset( noteType, tableStream.size() );
             fib.setNotesDescriptorsSize( noteType, 0 );
             return;
         }
 
-        int start = tableStream.getOffset();
+        int start = tableStream.size();
         tableStream.write( descriptors.toByteArray() );
-        int end = tableStream.getOffset();
+        int end = tableStream.size();
 
         fib.setNotesDescriptorsOffset( noteType, start );
         fib.setNotesDescriptorsSize( noteType, end - start );
     }
 
-    public void writeTxt( FileInformationBlock fib, HWPFOutputStream tableStream )
+    public void writeTxt( FileInformationBlock fib, ByteArrayOutputStream tableStream )
             throws IOException
     {
         if ( textPositions == null || textPositions.length() == 0 )
         {
-            fib.setNotesTextPositionsOffset( noteType, tableStream.getOffset() );
+            fib.setNotesTextPositionsOffset( noteType, tableStream.size() );
             fib.setNotesTextPositionsSize( noteType, 0 );
             return;
         }
 
-        int start = tableStream.getOffset();
+        int start = tableStream.size();
         tableStream.write( textPositions.toByteArray() );
-        int end = tableStream.getOffset();
+        int end = tableStream.size();
 
         fib.setNotesTextPositionsOffset( noteType, start );
         fib.setNotesTextPositionsSize( noteType, end - start );
index 3979009f2008dd324e9c2e2638ce01c0f3fe543a..231fb9f9f11778743258bdad206073956bb03a3e 100644 (file)
@@ -17,6 +17,7 @@
 
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -26,7 +27,6 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.hwpf.sprm.SprmBuffer;
 import org.apache.poi.hwpf.sprm.SprmIterator;
 import org.apache.poi.hwpf.sprm.SprmOperation;
@@ -386,15 +386,15 @@ public class PAPBinTable
         return _paragraphs;
     }
 
-    public void writeTo( HWPFOutputStream wordDocumentStream,
-            HWPFOutputStream tableStream, CharIndexTranslator translator )
+    public void writeTo( ByteArrayOutputStream wordDocumentStream,
+            ByteArrayOutputStream tableStream, CharIndexTranslator translator )
             throws IOException
     {
 
         PlexOfCps binTable = new PlexOfCps(4);
     
         // each FKP must start on a 512 byte page.
-        int docOffset = wordDocumentStream.getOffset();
+        int docOffset = wordDocumentStream.size();
         int mod = docOffset % POIFSConstants.SMALLER_BIG_BLOCK_SIZE;
         if (mod != 0)
         {
@@ -403,7 +403,7 @@ public class PAPBinTable
         }
     
         // get the page number for the first fkp
-        docOffset = wordDocumentStream.getOffset();
+        docOffset = wordDocumentStream.size();
         int pageNum = docOffset/POIFSConstants.SMALLER_BIG_BLOCK_SIZE;
     
         // get the ending fc
index d314d95b4e79caeb3d5d9f0f90edb870a8727c2c..408a33f328283f9cd82ce9747c0a937f591aa716 100644 (file)
 
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 
@@ -182,7 +182,7 @@ public final class PAPFormattedDiskPage extends FormattedDiskPage {
      * @throws IOException
      *             if an I/O error occurs.
      */
-    protected byte[] toByteArray( HWPFOutputStream dataStream,
+    protected byte[] toByteArray( ByteArrayOutputStream dataStream,
             CharIndexTranslator translator ) throws IOException
     {
         byte[] buf = new byte[512];
@@ -296,7 +296,7 @@ public final class PAPFormattedDiskPage extends FormattedDiskPage {
 
                 byte[] hugePapx = new byte[grpprl.length - 2];
                 System.arraycopy( grpprl, 2, hugePapx, 0, grpprl.length - 2 );
-                int dataStreamOffset = dataStream.getOffset();
+                int dataStreamOffset = dataStream.size();
                 dataStream.write( hugePapx );
 
                 // grpprl = grpprl containing only a sprmPHugePapx2
index b387e8f31503911854553cbd8da117c6d6a20d2f..90d0b3cef3ef75e3e89f1c22f5393bb0e2f7781e 100644 (file)
  */
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.NoSuchElementException;
 
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
@@ -202,10 +202,10 @@ public class PlfLfo
         return result;
     }
 
-    void writeTo( FileInformationBlock fib, HWPFOutputStream outputStream )
+    void writeTo( FileInformationBlock fib, ByteArrayOutputStream outputStream )
             throws IOException
     {
-        final int offset = outputStream.getOffset();
+        final int offset = outputStream.size();
         fib.setFcPlfLfo( offset );
 
         LittleEndian.putUInt( _lfoMac, outputStream );
@@ -221,6 +221,6 @@ public class PlfLfo
         {
             _rgLfoData[i].writeTo( outputStream );
         }
-        fib.setLcbPlfLfo( outputStream.getOffset() - offset );
+        fib.setLcbPlfLfo( outputStream.size() - offset );
     }
 }
index b1347d0e7663243e5489ec21e97478425707ce50..2c4bd5521c27507d3897dbb4157e7482438bcabe 100644 (file)
 
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.util.Internal;
 
 /**
@@ -88,7 +88,7 @@ public final class RevisionMarkAuthorTable {
         * @param tableStream  the table stream to write to.
         * @throws IOException  if an error occurs while writing.
         */
-    public void writeTo( HWPFOutputStream tableStream ) throws IOException
+    public void writeTo( ByteArrayOutputStream tableStream ) throws IOException
     {
         SttbUtils.writeSttbfRMark( entries, tableStream );
     }
index 87c7a8ef98293768876eb907f40cf86926aaa26d..e8eff88eb194ce035d3cf1bed6d4515ffb5ffad1 100644 (file)
 ==================================================================== */
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.util.Internal;
 
 /**
@@ -77,7 +77,7 @@ public final class SavedByTable
      * @throws IOException
      *             if an error occurs while writing.
      */
-    public void writeTo( HWPFOutputStream tableStream ) throws IOException
+    public void writeTo( ByteArrayOutputStream tableStream ) throws IOException
     {
         String[] toSave = new String[entries.length * 2];
         int counter = 0;
index ec93d56e5ad4bafda8500cc5edd0b63baaf219e4..c038d9babf4122034e47bf70fc6f1def3f8019db 100644 (file)
 
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
 import org.apache.poi.hwpf.model.io.HWPFFileSystem;
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.POILogFactory;
@@ -168,18 +168,18 @@ public class SectionTable
     @Deprecated
     public void writeTo( HWPFFileSystem sys, int fcMin ) throws IOException
     {
-        HWPFOutputStream docStream = sys.getStream( "WordDocument" );
-        HWPFOutputStream tableStream = sys.getStream( "1Table" );
+        ByteArrayOutputStream docStream = sys.getStream( "WordDocument" );
+        ByteArrayOutputStream tableStream = sys.getStream( "1Table" );
 
         writeTo( docStream, tableStream );
     }
 
     public void writeTo(
-            HWPFOutputStream wordDocumentStream,
-            HWPFOutputStream tableStream ) throws IOException
+            ByteArrayOutputStream wordDocumentStream,
+            ByteArrayOutputStream tableStream ) throws IOException
     {
 
-        int offset = wordDocumentStream.getOffset();
+        int offset = wordDocumentStream.size();
         int len = _sections.size();
         PlexOfCps plex = new PlexOfCps(SED_SIZE);
 
@@ -220,7 +220,7 @@ public class SectionTable
 
             plex.addProperty(property);
 
-            offset = wordDocumentStream.getOffset();
+            offset = wordDocumentStream.size();
         }
         tableStream.write(plex.toByteArray());
     }
index fba473f9cf0a751dca643342ac37f92b616c031f..850d40d5096a6983cbb776e751bcd0976f9bb5e3 100644 (file)
@@ -17,8 +17,8 @@
 package org.apache.poi.hwpf.model;
 
 import java.io.IOException;
+import java.io.OutputStream;
 
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.util.Internal;
 
 /**
@@ -53,24 +53,22 @@ class SttbUtils
                 .getData();
     }
 
-    static void writeSttbfBkmk( String[] data, HWPFOutputStream tableStream )
+    static void writeSttbfBkmk( String[] data, OutputStream tableStream )
             throws IOException
     {
         tableStream.write( new Sttb( CDATA_SIZE_STTBF_BKMK, data ).serialize() );
     }
 
-    static void writeSttbfRMark( String[] data, HWPFOutputStream tableStream )
+    static void writeSttbfRMark( String[] data, OutputStream tableStream )
             throws IOException
     {
-        tableStream.write( new Sttb( CDATA_SIZE_STTBF_R_MARK, data )
-                .serialize() );
+        tableStream.write( new Sttb( CDATA_SIZE_STTBF_R_MARK, data ).serialize() );
     }
 
-    static void writeSttbSavedBy( String[] data, HWPFOutputStream tableStream )
+    static void writeSttbSavedBy( String[] data, OutputStream tableStream )
             throws IOException
     {
-        tableStream.write( new Sttb( CDATA_SIZE_STTB_SAVED_BY, data )
-                .serialize() );
+        tableStream.write( new Sttb( CDATA_SIZE_STTB_SAVED_BY, data ).serialize() );
     }
 
 }
index f8ec76b674e6bae1bafe7409b010fbb30b9bcb50..8084f73e1761b5bd82628b1ffbda01cb8251efb5 100644 (file)
@@ -18,8 +18,8 @@
 package org.apache.poi.hwpf.model;
 
 import java.io.IOException;
+import java.io.OutputStream;
 
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.hwpf.sprm.CharacterSprmUncompressor;
 import org.apache.poi.hwpf.sprm.ParagraphSprmUncompressor;
 import org.apache.poi.hwpf.usermodel.CharacterProperties;
@@ -123,7 +123,7 @@ public final class StyleSheet implements HDFType {
       }
   }
 
-  public void writeTo(HWPFOutputStream out)
+  public void writeTo(OutputStream out)
     throws IOException
   {
 
index bbddd86459545013f48b5dabad9d90b88c7d8207..931c3fc887464d864797a1af0e23cc0188fe82b3 100644 (file)
@@ -16,6 +16,7 @@
 ==================================================================== */
 package org.apache.poi.hwpf.model;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.Serializable;
 import java.util.ArrayList;
@@ -24,7 +25,6 @@ import java.util.Comparator;
 import java.util.LinkedList;
 import java.util.List;
 
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.poifs.common.POIFSConstants;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.POILogFactory;
@@ -413,14 +413,14 @@ public class TextPieceTable implements CharIndexTranslator {
         return _textPiecesFCOrder.get(low + 1).getPieceDescriptor().getFilePosition();
     }
 
-    public byte[] writeTo(HWPFOutputStream docStream) throws IOException {
+    public byte[] writeTo(ByteArrayOutputStream docStream) throws IOException {
         PlexOfCps textPlex = new PlexOfCps(PieceDescriptor.getSizeInBytes());
         // int fcMin = docStream.getOffset();
 
         for (TextPiece next : _textPieces) {
             PieceDescriptor pd = next.getPieceDescriptor();
 
-            int offset = docStream.getOffset();
+            int offset = docStream.size();
             int mod = (offset % POIFSConstants.SMALLER_BIG_BLOCK_SIZE);
             if (mod != 0) {
                 mod = POIFSConstants.SMALLER_BIG_BLOCK_SIZE - mod;
@@ -429,7 +429,7 @@ public class TextPieceTable implements CharIndexTranslator {
             }
 
             // set the text piece position to the current docStream offset.
-            pd.setFilePosition(docStream.getOffset());
+            pd.setFilePosition(docStream.size());
 
             // write the text to the docstream and save the piece descriptor to
             // the
index 9663f017753421fa6d7bb8f005690b928c8bcf25..4ab383f9b3e55949f8b6f95eb4c92392e20c8422 100644 (file)
@@ -18,6 +18,7 @@
 package org.apache.poi.hwpf.model.io;
 
 
+import java.io.ByteArrayOutputStream;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -26,16 +27,16 @@ import org.apache.poi.util.Internal;
 @Internal
 public final class HWPFFileSystem
 {
-  Map<String, HWPFOutputStream> _streams = new HashMap<String, HWPFOutputStream>();
+  private Map<String, ByteArrayOutputStream> _streams = new HashMap<String, ByteArrayOutputStream>();
 
   public HWPFFileSystem()
   {
-    _streams.put("WordDocument", new HWPFOutputStream());
-    _streams.put("1Table", new HWPFOutputStream());
-    _streams.put("Data", new HWPFOutputStream());
+    _streams.put("WordDocument", new ByteArrayOutputStream());
+    _streams.put("1Table", new ByteArrayOutputStream());
+    _streams.put("Data", new ByteArrayOutputStream());
   }
 
-  public HWPFOutputStream getStream(String name)
+  public ByteArrayOutputStream getStream(String name)
   {
     return _streams.get(name);
   }
diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/io/HWPFOutputStream.java b/src/scratchpad/src/org/apache/poi/hwpf/model/io/HWPFOutputStream.java
deleted file mode 100644 (file)
index 0264cae..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You 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.hwpf.model.io;
-
-import java.io.ByteArrayOutputStream;
-
-import org.apache.poi.util.Internal;
-
-@Internal
-public final class HWPFOutputStream extends ByteArrayOutputStream {
-
-    int _offset;
-
-    public HWPFOutputStream() {
-        super();
-    }
-
-    public int getOffset() {
-        return _offset;
-    }
-
-    public synchronized void reset() {
-        super.reset();
-        _offset = 0;
-    }
-
-    public synchronized void write(byte[] buf, int off, int len) {
-        super.write(buf, off, len);
-        _offset += len;
-    }
-
-    public synchronized void write(int b) {
-        super.write(b);
-        _offset++;
-    }
-}
index fa4dc3e129da9fa304977641e2431dac365fc9b4..1b332db0700c8a2b0e19012fc30d1d6ae594f06d 100644 (file)
 
 package org.apache.poi.hwpf.model;
 
-import junit.framework.*;
-import org.apache.poi.hwpf.*;
-import org.apache.poi.hwpf.model.io.*;
+import static org.junit.Assert.assertTrue;
 
-public final class TestFontTable
-  extends TestCase
-{
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+import org.apache.poi.hwpf.HWPFDocFixture;
+import org.apache.poi.hwpf.model.io.HWPFFileSystem;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public final class TestFontTable {
   private FontTable _fontTable = null;
   private HWPFDocFixture _hWPFDocFixture;
 
-  public void testReadWrite()
-    throws Exception
-  {
+  @Test
+  public void testReadWrite() throws IOException {
     FileInformationBlock fib = _hWPFDocFixture._fib;
     byte[] tableStream = _hWPFDocFixture._tableStream;
 
@@ -41,7 +45,7 @@ public final class TestFontTable
     HWPFFileSystem fileSys = new HWPFFileSystem();
 
     _fontTable.writeTo(fileSys);
-    HWPFOutputStream  tableOut = fileSys.getStream("1Table");
+    ByteArrayOutputStream  tableOut = fileSys.getStream("1Table");
 
 
     byte[] newTableStream = tableOut.toByteArray();
@@ -53,25 +57,15 @@ public final class TestFontTable
 
   }
 
-  @Override
-protected void setUp()
-    throws Exception
-  {
-    super.setUp();
-    /**@todo verify the constructors*/
+  @Before
+  public void setUp() throws IOException {
     _hWPFDocFixture = new HWPFDocFixture(this, HWPFDocFixture.DEFAULT_TEST_FILE);
-
     _hWPFDocFixture.setUp();
   }
 
-  @Override
-protected void tearDown()
-    throws Exception
-  {
+  @After
+  public void tearDown() throws IOException  {
     _hWPFDocFixture.tearDown();
-
-    _hWPFDocFixture = null;
-    super.tearDown();
   }
 
 }
index aed56038ef7dc0d0570d5f24c567cb5e15e51731..ecf22578a1f050bf46e514f9fb01afb3e673f78b 100644 (file)
@@ -19,11 +19,11 @@ package org.apache.poi.hwpf.model;
 
 import static org.junit.Assert.assertEquals;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
 import org.apache.poi.hwpf.HWPFTestCase;
 import org.apache.poi.hwpf.model.io.HWPFFileSystem;
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.junit.Test;
 
 public final class TestListTables extends HWPFTestCase {
@@ -43,7 +43,7 @@ public final class TestListTables extends HWPFTestCase {
             ListTables listTables = new ListTables(tableStream, listOffset, lfoOffset, bLfoOffset);
             HWPFFileSystem fileSys = new HWPFFileSystem();
     
-            HWPFOutputStream tableOut = fileSys.getStream("1Table");
+            ByteArrayOutputStream tableOut = fileSys.getStream("1Table");
     
             listTables.writeListDataTo(fib, tableOut);
             listTables.writeListOverridesTo(fib, tableOut);
index a642d19001fac05e081a7dac9c5d946708b5d569..064648128154ae6e517ccf542fc9790b4f48fb32 100644 (file)
 
 package org.apache.poi.hwpf.model;
 
-import java.util.List;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
-import junit.framework.TestCase;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.List;
 
 import org.apache.poi.hwpf.HWPFDocFixture;
 import org.apache.poi.hwpf.HWPFTestDataSamples;
 import org.apache.poi.hwpf.model.io.HWPFFileSystem;
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
+import org.junit.Test;
 
-public final class TestPAPBinTable extends TestCase
-{
+public final class TestPAPBinTable {
 
-    public void testObIs()
-    {
+    @Test
+    public void testObIs() throws IOException {
         // shall not fail with assertions on
-        HWPFTestDataSamples.openSampleFile( "ob_is.doc" );
+        HWPFTestDataSamples.openSampleFile( "ob_is.doc" ).close();;
     }
 
-    public void testReadWrite() throws Exception
-    {
+    @Test
+    public void testReadWrite() throws IOException {
         /** @todo verify the constructors */
-        HWPFDocFixture _hWPFDocFixture = new HWPFDocFixture( this,
-                HWPFDocFixture.DEFAULT_TEST_FILE );
+        HWPFDocFixture _hWPFDocFixture = new HWPFDocFixture( this, HWPFDocFixture.DEFAULT_TEST_FILE );
 
         _hWPFDocFixture.setUp();
         TextPieceTable fakeTPT = new TextPieceTable();
@@ -52,8 +53,8 @@ public final class TestPAPBinTable extends TestCase
                 null, fib.getFcPlcfbtePapx(), fib.getLcbPlcfbtePapx(), fakeTPT );
 
         HWPFFileSystem fileSys = new HWPFFileSystem();
-        HWPFOutputStream tableOut = fileSys.getStream( "1Table" );
-        HWPFOutputStream mainOut = fileSys.getStream( "WordDocument" );
+        ByteArrayOutputStream tableOut = fileSys.getStream( "1Table" );
+        ByteArrayOutputStream mainOut = fileSys.getStream( "WordDocument" );
         _pAPBinTable.writeTo( mainOut, tableOut, fakeTPT );
 
         byte[] newTableStream = tableOut.toByteArray();
index 41677ddfbacd53b2672fae28d282c190af5ee7bc..2e374c299a1dbad61462e63e5d4eee2c725773bd 100644 (file)
 
 package org.apache.poi.hwpf.model;
 
-import junit.framework.*;
+import static org.junit.Assert.assertEquals;
 
-import org.apache.poi.hwpf.*;
-import org.apache.poi.hwpf.model.io.*;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 
-public final class TestStyleSheet
-  extends TestCase
-{
+import org.apache.poi.hwpf.HWPFDocFixture;
+import org.apache.poi.hwpf.model.io.HWPFFileSystem;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public final class TestStyleSheet {
   private StyleSheet _styleSheet = null;
   private HWPFDocFixture _hWPFDocFixture;
 
-  public void testReadWrite()
-    throws Exception
+  @Test
+  public void testReadWrite() throws IOException
   {
     HWPFFileSystem fileSys = new HWPFFileSystem();
 
 
-    HWPFOutputStream tableOut = fileSys.getStream("1Table");
-    HWPFOutputStream mainOut =  fileSys.getStream("WordDocument");
+    ByteArrayOutputStream tableOut = fileSys.getStream("1Table");
+    ByteArrayOutputStream mainOut =  fileSys.getStream("WordDocument");
 
     _styleSheet.writeTo(tableOut);
 
@@ -43,14 +47,13 @@ public final class TestStyleSheet
 
     StyleSheet newStyleSheet = new StyleSheet(newTableStream, 0);
     assertEquals(newStyleSheet, _styleSheet);
-
   }
 
-  public void testReadWriteFromNonZeroOffset()
-    throws Exception
+  @Test
+  public void testReadWriteFromNonZeroOffset() throws IOException
   {
     HWPFFileSystem fileSys = new HWPFFileSystem();
-    HWPFOutputStream tableOut = fileSys.getStream("1Table");
+    ByteArrayOutputStream tableOut = fileSys.getStream("1Table");
 
     tableOut.write(new byte[20]); // 20 bytes of whatever at the front.
     _styleSheet.writeTo(tableOut);
@@ -61,11 +64,8 @@ public final class TestStyleSheet
     assertEquals(newStyleSheet, _styleSheet);
   }
 
-  @Override
-protected void setUp()
-    throws Exception
-  {
-    super.setUp();
+  @Before
+  public void setUp() throws IOException {
     /**@todo verify the constructors*/
     _hWPFDocFixture = new HWPFDocFixture(this, HWPFDocFixture.DEFAULT_TEST_FILE);
     _hWPFDocFixture.setUp();
@@ -77,15 +77,11 @@ protected void setUp()
     _styleSheet = new StyleSheet(tableStream, fib.getFcStshf());
   }
 
-  @Override
-protected void tearDown()
-    throws Exception
-  {
+  @After
+  public void tearDown() throws Exception {
     _styleSheet = null;
     _hWPFDocFixture.tearDown();
 
     _hWPFDocFixture = null;
-    super.tearDown();
   }
-
 }
index e91906ce3e8af339ba5bac391303ef817a4902fb..7965121a8040eff7144042fddc527472dce774d1 100644 (file)
 ==================================================================== */
 package org.apache.poi.hwpf.usermodel;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
 import static org.apache.poi.POITestCase.assertContains;
 import static org.apache.poi.POITestCase.assertNotContained;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -29,7 +29,6 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 
-import junit.framework.TestCase;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.hwpf.HWPFDocument;
@@ -43,7 +42,6 @@ import org.apache.poi.hwpf.model.FieldsDocumentPart;
 import org.apache.poi.hwpf.model.FileInformationBlock;
 import org.apache.poi.hwpf.model.PlexOfField;
 import org.apache.poi.hwpf.model.SubdocumentType;
-import org.apache.poi.hwpf.model.io.HWPFOutputStream;
 import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.util.IOUtils;
@@ -51,6 +49,8 @@ import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
 import org.junit.Test;
 
+import junit.framework.TestCase;
+
 /**
  * Test different problems reported in the Apache Bugzilla
  *  against HWPF
@@ -607,7 +607,7 @@ public class TestBugs{
         System.arraycopy(doc.getTableStream(), doc.getFileInformationBlock()
                 .getFcDop(), originalData, 0, originalData.length);
 
-        HWPFOutputStream outputStream = new HWPFOutputStream();
+        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
         doc.getDocProperties().writeTo(outputStream);
         final byte[] oldData = outputStream.toByteArray();
 
@@ -620,7 +620,7 @@ public class TestBugs{
 
         doc = HWPFTestDataSamples.writeOutAndReadBack(doc);
 
-        outputStream = new HWPFOutputStream();
+        outputStream = new ByteArrayOutputStream();
         doc.getDocProperties().writeTo(outputStream);
         final byte[] newData = outputStream.toByteArray();