]> source.dussan.org Git - poi.git/commitdiff
Move one testcase with incorrect source location
authorDominik Stadler <centic@apache.org>
Fri, 9 Jun 2017 12:49:01 +0000 (12:49 +0000)
committerDominik Stadler <centic@apache.org>
Fri, 9 Jun 2017 12:49:01 +0000 (12:49 +0000)
remove some junit dependencies in example-code
build: do not pass junit-jar to normal compile targets to avoid introducing it as dependency again
Reformat code, fix warnings, ...

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1798202 13f79535-47bb-0310-9956-ffa450edef68

build.xml
src/examples/src/org/apache/poi/xwpf/usermodel/examples/UpdateEmbeddedDoc.java
src/integrationtest/org/apache/poi/stress/HWPFFileHandler.java
src/java/org/apache/poi/ss/util/SheetUtil.java
src/ooxml/java/org/apache/poi/openxml4j/opc/internal/marshallers/TestZipPackagePropertiesMarshaller.java [deleted file]
src/ooxml/java/org/apache/poi/util/OOXMLLite.java
src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java
src/ooxml/testcases/org/apache/poi/openxml4j/opc/internal/marshallers/TestZipPackagePropertiesMarshaller.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hwpf/model/PieceDescriptor.java
src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java

index ee36f08f5c74b669a6fc7b560543c26d054e600e..9d09b5528436850cbe88a0bc289bb7e85809b229 100644 (file)
--- a/build.xml
+++ b/build.xml
@@ -325,12 +325,15 @@ under the License.
     <path id="main.classpath">
         <pathelement location="${main.commons-logging.jar}"/>
         <pathelement location="${main.commons-codec.jar}"/>
-        <pathelement location="${main.log4j.jar}"/>
+        <pathelement location="${main.commons-collections4.jar}"/>
+    </path>
+
+    <!-- some libraries should only be required for compiling/running tests -->
+    <path id="test.jar.classpath">
         <pathelement location="${main.junit.jar}"/>
         <pathelement location="${main.jmh.jar}"/>
         <pathelement location="${main.jmhAnnotation.jar}"/>
         <pathelement location="${main.hamcrest.jar}"/>
-        <pathelement location="${main.commons-collections4.jar}"/>
     </path>
 
     <path id="scratchpad.classpath">
@@ -375,6 +378,7 @@ under the License.
 
     <path id="test.ooxml.classpath">
         <path refid="ooxml.classpath"/>
+        <path refid="test.jar.classpath"/>
         <pathelement location="${ooxml.output.dir}"/>
         <pathelement location="${ooxml.output.test.dir}"/>
         <pathelement location="${main.output.test.dir}"/>
@@ -385,6 +389,7 @@ under the License.
         <pathelement location="${integration.src.test}"/>
         <path refid="scratchpad.classpath"/>
         <path refid="ooxml.classpath"/>
+        <path refid="test.jar.classpath"/>
         <pathelement location="${main.output.test.dir}"/>
         <pathelement location="${ooxml.output.dir}"/>
         <pathelement location="${integration.output.test.dir}"/>
@@ -420,6 +425,7 @@ under the License.
 
     <path id="test.excelant.classpath">
         <path refid="ooxml.classpath"/>
+        <path refid="test.jar.classpath"/>
         <pathelement location="${ooxml.output.dir}"/>
         <pathelement location="${excelant.output.dir}"/>
         <pathelement location="${excelant.output.test.dir}"/>
@@ -857,6 +863,10 @@ under the License.
                    includeantruntime="false">
                    <!-- debug="${compile.debug}" -->
                 <classpath refid="ooxml.classpath"/>
+
+                <!-- unfortunately JUnit is required here for OOXMLLite, we should rather move OOXMLLite
+                to test or a separate folder to clean up dependencies -->
+                <classpath location="${main.junit.jar}"/>
             </javac>
 
             <jar basedir="${xmlbean.classes.dir}" destfile="@{classes-jar}" excludes="org/apache/**" level="9" />
@@ -918,6 +928,7 @@ under the License.
                includeantruntime="false">
             <classpath>
                 <path refid="main.classpath"/>
+                <path refid="test.jar.classpath"/>
                 <pathelement path="${main.output.dir}"/>
             </classpath>
         </javac>
@@ -981,6 +992,7 @@ under the License.
                includeantruntime="false">
             <classpath>
                 <path refid="scratchpad.classpath"/>
+                <path refid="test.jar.classpath"/>
                 <pathelement location="${scratchpad.output.dir}"/>
                 <pathelement location="${main.output.test.dir}"/>
             </classpath>
@@ -1024,6 +1036,10 @@ under the License.
             <classpath>
                 <path refid="ooxml.classpath"/>
                 <path refid="ooxml.xmlsec.classpath"/>
+
+                <!-- unfortunately JUnit is required here for OOXMLLite, we should rather move OOXMLLite
+                to test or a separate folder to clean up dependencies -->
+                <pathelement location="${main.junit.jar}"/>
             </classpath>
         </javac>
         <!-- compile the tests -->
@@ -1114,6 +1130,7 @@ under the License.
                includeantruntime="false">
             <classpath>
                 <path refid="excelant.classpath"/>
+                <path refid="test.jar.classpath"/>
                 <pathelement location="${excelant.output.dir}"/>
                 <pathelement path="${main.output.test.dir}"/>
             </classpath>
@@ -1135,6 +1152,7 @@ under the License.
             <classpath>
                 <path refid="scratchpad.classpath"/>
                 <path refid="ooxml.classpath"/>
+                <path refid="test.jar.classpath"/>
                 <pathelement location="${ooxml.output.dir}"/>
                 <pathelement location="${main.output.test.dir}"/>
                 <pathelement location="${examples.output.dir}"/>
@@ -1274,6 +1292,7 @@ under the License.
             <junit fork="yes" forkmode="once" printsummary="yes" haltonfailure="${halt.on.test.failure}"
                    failureproperty="main.test.failed" showoutput="true">
                 <classpath refid="test.classpath"/>
+                <classpath refid="test.jar.classpath"/>
                 <syspropertyset refid="junit.properties"/>
                 <jvmarg value="-ea"/>
                 <jvmarg value="-Xmx256m"/>
@@ -1391,6 +1410,7 @@ under the License.
             <junit printsummary="yes" fork="yes" forkmode="once" haltonfailure="${halt.on.test.failure}"
                    failureproperty="scratchpad.test.failed">
                 <classpath refid="test.scratchpad.classpath"/>
+                <classpath refid="test.jar.classpath"/>
                 <syspropertyset refid="junit.properties"/>
                 <jvmarg value="-ea"/>
                 <!-- jvmarg value="-Duser.timezone=UTC"/ -->
@@ -1443,7 +1463,10 @@ under the License.
             <jacoco:coverage enabled="${coverage.enabled}" excludes="${coverage.excludes}" destfile="build/jacoco-@{type}.exec">
               <junit printsummary="yes" fork="yes" forkmode="once" haltonfailure="${halt.on.test.failure}"
                      failureproperty="ooxml.test.failed">
-                  <classpath refid="@{classpath}"/>
+                  <classpath>
+                      <path refid="@{classpath}"/>
+                      <path refid="test.jar.classpath"/>
+                  </classpath>
                   <syspropertyset refid="junit.properties"/>
                     <jvmarg value="${maxpermsize}"/>
                     <jvmarg value="-Xmx768M"/>
@@ -1476,6 +1499,7 @@ under the License.
                      failureproperty="ooxml.xmlsec.test.failed">
                   <classpath>
                       <path refid="@{classpath}"/>
+                      <path refid="test.jar.classpath"/>
                       <path refid="ooxml.xmlsec.classpath"/>
                   </classpath>
                   <syspropertyset refid="junit.properties"/>
index 251b4568f62cee6155874dd07f2747037753e632..77e04a7ef835835f15d26fc09aae996645e90c69 100644 (file)
@@ -19,8 +19,6 @@
 
 package org.apache.poi.xwpf.usermodel.examples;
 
-import static org.junit.Assert.assertEquals;
-
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -77,7 +75,7 @@ public class UpdateEmbeddedDoc {
         this.docFile = new File(filename);
         FileInputStream fis = null;
         if (!this.docFile.exists()) {
-            throw new FileNotFoundException("The Word dcoument " + filename + " does not exist.");
+            throw new FileNotFoundException("The Word document " + filename + " does not exist.");
         }
         try {
             // Open the Word document file and instantiate the XWPFDocument
@@ -90,7 +88,7 @@ public class UpdateEmbeddedDoc {
     }
 
     /**
-     * Called to update the embedded Excel workbook. As the format and structire
+     * Called to update the embedded Excel workbook. As the format and structure
      * of the workbook are known in advance, all this code attempts to do is
      * write a new value into the first cell on the first row of the first
      * worksheet. Prior to executing this method, that cell will contain the
@@ -99,7 +97,7 @@ public class UpdateEmbeddedDoc {
      * @throws org.apache.poi.openxml4j.exceptions.OpenXML4JException
      *                             Rather
      *                             than use the specific classes (HSSF/XSSF) to handle the embedded
-     *                             workbook this method uses those defeined in the SS stream. As
+     *                             workbook this method uses those defined in the SS stream. As
      *                             a result, it might be the case that a SpreadsheetML file is
      *                             opened for processing, throwing this exception if that file is
      *                             invalid.
@@ -160,7 +158,7 @@ public class UpdateEmbeddedDoc {
      * @throws org.apache.poi.openxml4j.exceptions.OpenXML4JException
      *                             Rather
      *                             than use the specific classes (HSSF/XSSF) to handle the embedded
-     *                             workbook this method uses those defeined in the SS stream. As
+     *                             workbook this method uses those defined in the SS stream. As
      *                             a result, it might be the case that a SpreadsheetML file is
      *                             opened for processing, throwing this exception if that file is
      *                             invalid.
@@ -178,7 +176,9 @@ public class UpdateEmbeddedDoc {
                     Sheet sheet = workbook.getSheetAt(SHEET_NUM);
                     Row row = sheet.getRow(ROW_NUM);
                     Cell cell = row.getCell(CELL_NUM);
-                    assertEquals(cell.getNumericCellValue(), NEW_VALUE, 0.0001);
+                    if(cell.getNumericCellValue() != NEW_VALUE) {
+                        throw new IllegalStateException("Failed to validate document content.");
+                    }
                 } finally {
                     IOUtils.closeQuietly(workbook);
                     IOUtils.closeQuietly(is);
@@ -189,9 +189,6 @@ public class UpdateEmbeddedDoc {
 
     /**
      * Code to test updating of the embedded Excel workbook.
-     *
-     * @param args
-     * @throws OpenXML4JException 
      */
     public static void main(String[] args) throws IOException, OpenXML4JException {
         UpdateEmbeddedDoc ued = new UpdateEmbeddedDoc(args[0]);
index d4ec360062644ae023407f12149607256d05bf6a..13e198d169902d7180e1c28b691d1578fddfabc3 100644 (file)
@@ -27,47 +27,47 @@ import org.apache.poi.hwpf.extractor.WordExtractor;
 import org.junit.Test;
 
 public class HWPFFileHandler extends POIFSFileHandler {
-       @Override
-       public void handleFile(InputStream stream, String path) throws Exception {
-               HWPFDocument doc = new HWPFDocument(stream);
-               assertNotNull(doc.getBookmarks());
-               assertNotNull(doc.getCharacterTable());
-               assertNotNull(doc.getEndnotes());
-               
-               handlePOIDocument(doc);
-       }
+    @Override
+    public void handleFile(InputStream stream, String path) throws Exception {
+        HWPFDocument doc = new HWPFDocument(stream);
+        assertNotNull(doc.getBookmarks());
+        assertNotNull(doc.getCharacterTable());
+        assertNotNull(doc.getEndnotes());
+        
+        handlePOIDocument(doc);
+    }
 
-       // a test-case to test this locally without executing the full TestAllFiles
-       @Override
+    // a test-case to test this locally without executing the full TestAllFiles
+    @Override
     @Test
-       public void test() throws Exception {
+    public void test() throws Exception {
         File file = new File("test-data/document/52117.doc");
 
         InputStream stream = new FileInputStream(file);
-               try {
-                       handleFile(stream, file.getPath());
-               } finally {
-                       stream.close();
-               }
-               
-               handleExtracting(file);
-               
-               stream = new FileInputStream(file);
-               try {
-                       WordExtractor extractor = new WordExtractor(stream);
-                       try {
-                               assertNotNull(extractor.getText());
-                       } finally {
-                               extractor.close();
-                       }
-               } finally {
-                       stream.close();
-               }
-       }
+        try {
+            handleFile(stream, file.getPath());
+        } finally {
+            stream.close();
+        }
+        
+        handleExtracting(file);
+        
+        stream = new FileInputStream(file);
+        try {
+            WordExtractor extractor = new WordExtractor(stream);
+            try {
+                assertNotNull(extractor.getText());
+            } finally {
+                extractor.close();
+            }
+        } finally {
+            stream.close();
+        }
+    }
 
-       @Test
-       public void testExtractingOld() throws Exception {
-               File file = new File("test-data/document/52117.doc");
-               handleExtracting(file);
-       }
+    @Test
+    public void testExtractingOld() throws Exception {
+        File file = new File("test-data/document/52117.doc");
+        handleExtracting(file);
+    }
 }
index 98c307f3eefe8e3c5bc1e6f452d014df61507d6b..6dd27b40fde08a081a47519df0665c9de1c48c11 100644 (file)
@@ -91,6 +91,7 @@ public class SheetUtil {
         public void evaluateAll() {}
         @Override
         public int evaluateFormulaCell(Cell cell) {
+            //noinspection deprecation
             return cell.getCachedFormulaResultType();
         }
         /** 
@@ -157,9 +158,9 @@ public class SheetUtil {
                 AttributedString str = new AttributedString(txt);
                 copyAttributes(font, str, 0, txt.length());
 
-                if (rt.numFormattingRuns() > 0) {
+                /*if (rt.numFormattingRuns() > 0) {
                     // TODO: support rich text fragments
-                }
+                }*/
 
                 width = getCellWidth(defaultCharWidth, colspan, style, width, str);
             }
@@ -329,7 +330,7 @@ public class SheetUtil {
     /**
      * Copy text attributes from the supplied Font to Java2D AttributedString
      */
-    private static void copyAttributes(Font font, AttributedString str, int startIdx, int endIdx) {
+    private static void copyAttributes(Font font, AttributedString str, @SuppressWarnings("SameParameterValue") int startIdx, int endIdx) {
         str.addAttribute(TextAttribute.FAMILY, font.getFontName(), startIdx, endIdx);
         str.addAttribute(TextAttribute.SIZE, (float)font.getFontHeightInPoints());
         if (font.getBold()) str.addAttribute(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD, startIdx, endIdx);
@@ -360,9 +361,9 @@ public class SheetUtil {
      * Use this where you want to know if the given cell is explicitly defined
      * or not.
      *
-     * @param sheet
-     * @param rowIx
-     * @param colIx
+     * @param sheet The workbook sheet to look at.
+     * @param rowIx The 0-based index of the row.
+     * @param colIx The 0-based index of the cell.
      * @return cell at the given location, or null if not defined
      * @throws NullPointerException if sheet is null
      */
@@ -384,10 +385,10 @@ public class SheetUtil {
      *  then will return the cell itself.
      * <p>If there is no cell defined at the given co-ordinates, will return
      *  null.
-     *  
-     * @param sheet
-     * @param rowIx
-     * @param colIx
+     *
+     * @param sheet The workbook sheet to look at.
+     * @param rowIx The 0-based index of the row.
+     * @param colIx The 0-based index of the cell.
      * @return cell at the given location, its base merged cell, or null if not defined
      * @throws NullPointerException if sheet is null
      */
diff --git a/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/marshallers/TestZipPackagePropertiesMarshaller.java b/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/marshallers/TestZipPackagePropertiesMarshaller.java
deleted file mode 100644 (file)
index 4ff321e..0000000
+++ /dev/null
@@ -1,66 +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.openxml4j.opc.internal.marshallers;
-
-import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
-import org.apache.poi.openxml4j.opc.PackagingURIHelper;
-import org.apache.poi.openxml4j.opc.internal.PackagePropertiesPart;
-import org.apache.poi.openxml4j.opc.internal.PartMarshaller;
-import org.junit.Test;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-import static org.apache.poi.openxml4j.opc.PackagingURIHelper.PACKAGE_RELATIONSHIPS_ROOT_URI;
-import static org.junit.Assert.assertTrue;
-
-public class TestZipPackagePropertiesMarshaller {
-    private PartMarshaller marshaller = new ZipPackagePropertiesMarshaller();
-
-    @Test(expected=IllegalArgumentException.class)
-    public void nonZipOutputStream() throws OpenXML4JException {
-        OutputStream notAZipOutputStream = new ByteArrayOutputStream(0);
-        marshaller.marshall(null, notAZipOutputStream);
-    }
-
-    @Test
-    public void withZipOutputStream() throws Exception {
-        assertTrue(marshaller.marshall(new PackagePropertiesPart(null, PackagingURIHelper.createPartName(PACKAGE_RELATIONSHIPS_ROOT_URI)),
-                new ZipOutputStream(new ByteArrayOutputStream())));
-    }
-
-    @Test
-    public void writingFails() throws Exception {
-        assertTrue(marshaller.marshall(new PackagePropertiesPart(null, PackagingURIHelper.createPartName(PACKAGE_RELATIONSHIPS_ROOT_URI)),
-                new ZipOutputStream(new ByteArrayOutputStream())));
-    }
-
-    @Test(expected=OpenXML4JException.class)
-    public void ioException() throws Exception {
-        marshaller.marshall(new PackagePropertiesPart(null, PackagingURIHelper.createPartName(PACKAGE_RELATIONSHIPS_ROOT_URI)),
-                new ZipOutputStream(new ByteArrayOutputStream()) {
-                    @Override
-                    public void putNextEntry(ZipEntry e) throws IOException {
-                        throw new IOException("TestException");
-                    }
-                });
-    }
-}
index 793b0471708777530ad8b673df4d5713672eea57..4eaa825e5784112b8153118ca1fb716d62aeb569 100644 (file)
@@ -143,9 +143,7 @@ public final class OOXMLLite {
             copyFile(cls.getResourceAsStream('/' + classRef), destFile);
 
             if(cls.isInterface()){
-                /**
-                 * Copy classes and interfaces declared as members of this class
-                 */
+                /// Copy classes and interfaces declared as members of this class
                 for(Class<?> fc : cls.getDeclaredClasses()){
                     className = fc.getName();
                     classRef = className.replace('.', '/') + ".class";
@@ -235,7 +233,6 @@ public final class OOXMLLite {
                 }
             } catch (Throwable e) { // NOSONAR
                 System.out.println("Class " + cls + " is not in classpath");
-                return;
             }
         }
     }
index 4362f62d14d4425500aacbfeb28399fa1d238557..a7880286542c218c822f7b9ed0efe449171b5e02 100644 (file)
@@ -948,15 +948,16 @@ public final class TestPackage {
     
     // bug 60128
     @Test
-    public void testCorruptFile() throws IOException {
+    public void testCorruptFile() throws IOException, InvalidFormatException {
         OPCPackage pkg = null;
         File file = OpenXML4JTestDataSamples.getSampleFile("invalid.xlsx");
         try {
             pkg = OPCPackage.open(file, PackageAccess.READ);
-        } catch (Exception e) {
-            System.out.println(e.getClass().getName());
+        } catch (NotOfficeXmlFileException e) {
+            /*System.out.println(e.getClass().getName());
             System.out.println(e.getMessage());
-            e.printStackTrace();
+            e.printStackTrace();*/
+            // ignore exception
         } finally {
             if (pkg != null) {
                 pkg.close();
diff --git a/src/ooxml/testcases/org/apache/poi/openxml4j/opc/internal/marshallers/TestZipPackagePropertiesMarshaller.java b/src/ooxml/testcases/org/apache/poi/openxml4j/opc/internal/marshallers/TestZipPackagePropertiesMarshaller.java
new file mode 100644 (file)
index 0000000..4ff321e
--- /dev/null
@@ -0,0 +1,66 @@
+/* ====================================================================
+   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.openxml4j.opc.internal.marshallers;
+
+import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
+import org.apache.poi.openxml4j.opc.PackagingURIHelper;
+import org.apache.poi.openxml4j.opc.internal.PackagePropertiesPart;
+import org.apache.poi.openxml4j.opc.internal.PartMarshaller;
+import org.junit.Test;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
+import static org.apache.poi.openxml4j.opc.PackagingURIHelper.PACKAGE_RELATIONSHIPS_ROOT_URI;
+import static org.junit.Assert.assertTrue;
+
+public class TestZipPackagePropertiesMarshaller {
+    private PartMarshaller marshaller = new ZipPackagePropertiesMarshaller();
+
+    @Test(expected=IllegalArgumentException.class)
+    public void nonZipOutputStream() throws OpenXML4JException {
+        OutputStream notAZipOutputStream = new ByteArrayOutputStream(0);
+        marshaller.marshall(null, notAZipOutputStream);
+    }
+
+    @Test
+    public void withZipOutputStream() throws Exception {
+        assertTrue(marshaller.marshall(new PackagePropertiesPart(null, PackagingURIHelper.createPartName(PACKAGE_RELATIONSHIPS_ROOT_URI)),
+                new ZipOutputStream(new ByteArrayOutputStream())));
+    }
+
+    @Test
+    public void writingFails() throws Exception {
+        assertTrue(marshaller.marshall(new PackagePropertiesPart(null, PackagingURIHelper.createPartName(PACKAGE_RELATIONSHIPS_ROOT_URI)),
+                new ZipOutputStream(new ByteArrayOutputStream())));
+    }
+
+    @Test(expected=OpenXML4JException.class)
+    public void ioException() throws Exception {
+        marshaller.marshall(new PackagePropertiesPart(null, PackagingURIHelper.createPartName(PACKAGE_RELATIONSHIPS_ROOT_URI)),
+                new ZipOutputStream(new ByteArrayOutputStream()) {
+                    @Override
+                    public void putNextEntry(ZipEntry e) throws IOException {
+                        throw new IOException("TestException");
+                    }
+                });
+    }
+}
index 53dcc17457e48146aec737643f6055d0518f8236..a54a06059bcf45a8182bfeb997b6855edc6307af 100644 (file)
@@ -19,128 +19,76 @@ package org.apache.poi.hwpf.model;
 
 import java.nio.charset.Charset;
 
-import org.apache.poi.util.BitField;
-import org.apache.poi.util.BitFieldFactory;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.StringUtil;
 
 @Internal
-public final class PieceDescriptor
-{
-
-  short descriptor;
-   private static BitField fNoParaLast = BitFieldFactory.getInstance(0x01);
-   private static BitField fPaphNil = BitFieldFactory.getInstance(0x02);
-   private static BitField fCopied = BitFieldFactory.getInstance(0x04);
-  int fc;
-  PropertyModifier prm;
-  boolean unicode = false;
-  private final Charset charset;
-
+public final class PieceDescriptor {
+    private final short descriptor;
+    int fc;     // used from the outside?!?
+    private final PropertyModifier prm;
+    private final boolean unicode;
+    private final Charset charset;
 
     public PieceDescriptor(byte[] buf, int offset) {
         this(buf, offset, null);
     }
 
     /**
-     *
      * This initializer should only be used for HWPFOldDocuments.
      *
-     * @param buf
-     * @param offset
+     * @param buf The buffer to read data from
+     * @param offset The offset into the buffer to start reading from
      * @param charset which charset to use if this is not unicode
      */
-  public PieceDescriptor(byte[] buf, int offset, Charset charset) {
-      descriptor = LittleEndian.getShort(buf, offset);
-      offset += LittleEndian.SHORT_SIZE;
-      fc = LittleEndian.getInt(buf, offset);
-      offset += LittleEndian.INT_SIZE;
-      prm = new PropertyModifier(LittleEndian.getShort(buf, offset));
-      if (charset == null) {
-        // see if this piece uses unicode.
-        //From the documentation: If the second most significant bit
-          //is clear, then this indicates the actual file offset of the Unicode character (two bytes). If the
-          //second most significant bit is set, then the actual address of the codepage-1252
-          //compressed version of the Unicode character (one byte), is actually at the offset indicated
-          //by clearing this bit and dividing by two.
-        if ((fc & 0x40000000) == 0) {
-          unicode = true;
-          this.charset = null;
+    public PieceDescriptor(byte[] buf, int offset, Charset charset) {
+        descriptor = LittleEndian.getShort(buf, offset);
+        offset += LittleEndian.SHORT_SIZE;
+        fc = LittleEndian.getInt(buf, offset);
+        offset += LittleEndian.INT_SIZE;
+        prm = new PropertyModifier(LittleEndian.getShort(buf, offset));
+        if (charset == null) {
+            // see if this piece uses unicode.
+            //From the documentation: If the second most significant bit
+            //is clear, then this indicates the actual file offset of the Unicode character (two bytes). If the
+            //second most significant bit is set, then the actual address of the codepage-1252
+            //compressed version of the Unicode character (one byte), is actually at the offset indicated
+            //by clearing this bit and dividing by two.
+            if ((fc & 0x40000000) == 0) {
+                unicode = true;
+                this.charset = null;
+            } else {
+                unicode = false;
+                fc &= ~(0x40000000);//gives me FC in doc stream
+                fc /= 2;
+                this.charset = StringUtil.WIN_1252;
+            }
         } else {
-          unicode = false;
-          fc &= ~(0x40000000);//gives me FC in doc stream
-          fc /= 2;
-          this.charset = StringUtil.WIN_1252;
+            if (charset == StringUtil.UTF16LE) {
+                unicode = true;
+            } else {
+                unicode = false;
+            }
+            this.charset = charset;
         }
-      } else {
-          if (charset == StringUtil.UTF16LE) {
-              unicode = true;
-          }
-          this.charset = charset;
-      }
-
-  }
-
-  public int getFilePosition()
-  {
-    return fc;
-  }
-
-  public void setFilePosition(int pos)
-  {
-    fc = pos;
-  }
-
-  public boolean isUnicode()
-  {
-    return unicode;
-  }
-
-    /**
-     *
-     * @return charset to use if this is not a Unicode PieceDescriptor
-     * this can be <code>null</code>
-     */
-  public Charset getCharset() {
-    return charset;
-  }
 
-    public PropertyModifier getPrm()
-    {
-        return prm;
     }
 
-  protected byte[] toByteArray()
-  {
-    // set up the fc
-    int tempFc = fc;
-    if (!unicode)
-    {
-      tempFc *= 2;
-      tempFc |= (0x40000000);
+    public int getFilePosition() {
+        return fc;
     }
 
-    int offset = 0;
-    byte[] buf = new byte[8];
-    LittleEndian.putShort(buf, offset, descriptor);
-    offset += LittleEndian.SHORT_SIZE;
-    LittleEndian.putInt(buf, offset, tempFc);
-    offset += LittleEndian.INT_SIZE;
-    LittleEndian.putShort(buf, offset, prm.getValue());
-
-    return buf;
-
-  }
+    public void setFilePosition(int pos) {
+        fc = pos;
+    }
 
-  public static int getSizeInBytes()
-  {
-    return 8;
-  }
+    public boolean isUnicode() {
+        return unicode;
+    }
 
     @Override
-    public int hashCode()
-    {
+    public int hashCode() {
         final int prime = 31;
         int result = 1;
         result = prime * result + descriptor;
@@ -149,35 +97,66 @@ public final class PieceDescriptor
         return result;
     }
 
+    /**
+     * @return charset to use if this is not a Unicode PieceDescriptor
+     * this can be <code>null</code>
+     */
+    public Charset getCharset() {
+        return charset;
+    }
+
+    public PropertyModifier getPrm() {
+        return prm;
+    }
+
+    protected byte[] toByteArray() {
+        // set up the fc
+        int tempFc = fc;
+        if (!unicode) {
+            tempFc *= 2;
+            tempFc |= (0x40000000);
+        }
+
+        int offset = 0;
+        byte[] buf = new byte[8];
+        LittleEndian.putShort(buf, offset, descriptor);
+        offset += LittleEndian.SHORT_SIZE;
+        LittleEndian.putInt(buf, offset, tempFc);
+        offset += LittleEndian.INT_SIZE;
+        LittleEndian.putShort(buf, offset, prm.getValue());
+
+        return buf;
+    }
+
+    public static int getSizeInBytes() {
+        return 8;
+    }
+
     @Override
-    public boolean equals( Object obj )
-    {
-        if ( this == obj )
+    public boolean equals(Object obj) {
+        if (this == obj)
             return true;
-        if ( obj == null )
+        if (obj == null)
             return false;
-        if ( getClass() != obj.getClass() )
+        if (getClass() != obj.getClass())
             return false;
         PieceDescriptor other = (PieceDescriptor) obj;
-        if ( descriptor != other.descriptor )
+        if (descriptor != other.descriptor)
             return false;
-        if ( prm == null )
-        {
-            if ( other.prm != null )
+        if (prm == null) {
+            if (other.prm != null)
                 return false;
-        }
-        else if ( !prm.equals( other.prm ) )
+        } else if (!prm.equals(other.prm))
             return false;
-        if ( unicode != other.unicode )
+        if (unicode != other.unicode)
             return false;
         return true;
     }
 
     @Override
-    public String toString()
-    {
+    public String toString() {
         return "PieceDescriptor (pos: " + getFilePosition() + "; "
-                + ( isUnicode() ? "unicode" : "non-unicode" ) + "; prm: "
+                + (isUnicode() ? "unicode" : "non-unicode") + "; prm: "
                 + getPrm() + ")";
     }
 }
index a0a82eeb9100aa4fc50e1fb831f665338fe9d5c1..38192d90f147394ad19a049e328fe6c1728e7329 100644 (file)
@@ -37,8 +37,8 @@ import static org.junit.Assert.*;
 import static org.junit.Assume.assumeTrue;
 
 /**
- * Common superclass for testing {@link org.apache.poi.xssf.usermodel.XSSFCell}  and
- * {@link org.apache.poi.hssf.usermodel.HSSFCell}
+ * Common superclass for testing {@link HSSFCell}, org.apache.poi.xssf.usermodel.XSSFCell and
+ * org.apache.poi.xssf.streaming.SXSSFCell
  */
 public abstract class BaseTestSheet {
     private static final int ROW_COUNT = 40000;
@@ -417,7 +417,7 @@ public abstract class BaseTestSheet {
         //should exist now!
         assertTrue("there isn't more than one merged region in there", 1 <= sheet.getNumMergedRegions());
         region = sheet.getMergedRegion(0);
-        assertEquals("the merged row to doesnt match the one we put in ", 4, region.getLastRow());
+        assertEquals("the merged row to doesn't match the one we put in ", 4, region.getLastRow());
         
         wb.close();
     }