]> source.dussan.org Git - poi.git/commitdiff
Sonar fixes - "static" base class members should not be accessed via derived types
authorAndreas Beeker <kiwiwings@apache.org>
Sun, 5 Apr 2020 18:55:46 +0000 (18:55 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Sun, 5 Apr 2020 18:55:46 +0000 (18:55 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1876159 13f79535-47bb-0310-9956-ffa450edef68

19 files changed:
src/java/org/apache/poi/hssf/usermodel/HSSFClientAnchor.java
src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordUtils.java
src/scratchpad/src/org/apache/poi/hwpf/converter/HtmlDocumentFacade.java
src/scratchpad/src/org/apache/poi/hwpf/converter/TextDocumentFacade.java
src/scratchpad/src/org/apache/poi/hwpf/converter/WordToFoConverter.java
src/scratchpad/src/org/apache/poi/hwpf/extractor/WordExtractor.java
src/scratchpad/src/org/apache/poi/hwpf/model/BookmarksTables.java
src/scratchpad/src/org/apache/poi/hwpf/model/FFData.java
src/scratchpad/src/org/apache/poi/hwpf/model/FSPATable.java
src/scratchpad/src/org/apache/poi/hwpf/model/FileInformationBlock.java
src/scratchpad/src/org/apache/poi/hwpf/model/ListFormatOverrideLevel.java
src/scratchpad/src/org/apache/poi/hwpf/model/ListLevel.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/PICFAndOfficeArtData.java
src/scratchpad/src/org/apache/poi/hwpf/model/PlfLfo.java
src/scratchpad/src/org/apache/poi/hwpf/model/StyleDescription.java
src/scratchpad/src/org/apache/poi/hwpf/model/StyleSheet.java
src/scratchpad/src/org/apache/poi/hwpf/sprm/ParagraphSprmUncompressor.java

index 5a93e847a8e6cd8eb992df25d82f07e0efa97fe7..a9ffbea49609a394ce10ac80f589dd007b29a7be 100644 (file)
@@ -46,10 +46,10 @@ public final class HSSFClientAnchor extends HSSFAnchor implements ClientAnchor {
     /**
      * Creates a new client anchor and sets the top-left and bottom-right
      * coordinates of the anchor.
-     * 
-     * Note: Microsoft Excel seems to sometimes disallow 
-     * higher y1 than y2 or higher x1 than x2, you might need to 
-     * reverse them and draw shapes vertically or horizontally flipped! 
+     *
+     * Note: Microsoft Excel seems to sometimes disallow
+     * higher y1 than y2 or higher x1 than x2, you might need to
+     * reverse them and draw shapes vertically or horizontally flipped!
      *
      * @param dx1  the x coordinate within the first cell.
      * @param dy1  the y coordinate within the first cell.
@@ -175,7 +175,7 @@ public final class HSSFClientAnchor extends HSSFAnchor implements ClientAnchor {
      */
     public void setRow1(int row1) {
         checkRange(row1, 0, MAX_ROW, "row1");
-        _escherClientAnchor.setRow1(Integer.valueOf(row1).shortValue());
+        _escherClientAnchor.setRow1((short)row1);
     }
 
     /**
@@ -190,16 +190,16 @@ public final class HSSFClientAnchor extends HSSFAnchor implements ClientAnchor {
      */
     public void setRow2(int row2) {
         checkRange(row2, 0, MAX_ROW, "row2");
-        _escherClientAnchor.setRow2(Integer.valueOf(row2).shortValue());
+        _escherClientAnchor.setRow2((short)row2);
     }
 
     /**
-     * Sets the top-left and bottom-right coordinates of 
+     * Sets the top-left and bottom-right coordinates of
      * the anchor.
-     * 
-     * Note: Microsoft Excel seems to sometimes disallow 
-     * higher y1 than y2 or higher x1 than x2, you might need to 
-     * reverse them and draw shapes vertically or horizontally flipped! 
+     *
+     * Note: Microsoft Excel seems to sometimes disallow
+     * higher y1 than y2 or higher x1 than x2, you might need to
+     * reverse them and draw shapes vertically or horizontally flipped!
      *
      * @param x1   the x coordinate within the first cell.
      * @param y1   the y coordinate within the first cell.
@@ -311,7 +311,7 @@ public final class HSSFClientAnchor extends HSSFAnchor implements ClientAnchor {
 
     @Override
     public void setDx1(int dx1) {
-        _escherClientAnchor.setDx1(Integer.valueOf(dx1).shortValue());
+        _escherClientAnchor.setDx1((short)dx1);
     }
 
     @Override
@@ -321,7 +321,7 @@ public final class HSSFClientAnchor extends HSSFAnchor implements ClientAnchor {
 
     @Override
     public void setDy1(int dy1) {
-        _escherClientAnchor.setDy1(Integer.valueOf(dy1).shortValue());
+        _escherClientAnchor.setDy1((short)dy1);
     }
 
     @Override
@@ -331,7 +331,7 @@ public final class HSSFClientAnchor extends HSSFAnchor implements ClientAnchor {
 
     @Override
     public void setDy2(int dy2) {
-        _escherClientAnchor.setDy2(Integer.valueOf(dy2).shortValue());
+        _escherClientAnchor.setDy2((short)dy2);
     }
 
     @Override
@@ -341,6 +341,6 @@ public final class HSSFClientAnchor extends HSSFAnchor implements ClientAnchor {
 
     @Override
     public void setDx2(int dx2) {
-        _escherClientAnchor.setDx2(Integer.valueOf(dx2).shortValue());
+        _escherClientAnchor.setDx2((short)dx2);
     }
 }
index 90da79a9ee9a8372aa34d40e12aefaf999f360d6..6ac48d67c1cb888d1d01024a0430a8f5a5153cf3 100644 (file)
@@ -77,9 +77,8 @@ public class AbstractWordUtils
             {
                 TableCell tableCell = tableRow.getCell( c );
 
-                edges.add( Integer.valueOf( tableCell.getLeftEdge() ) );
-                edges.add( Integer.valueOf( tableCell.getLeftEdge()
-                        + tableCell.getWidth() ) );
+                edges.add(tableCell.getLeftEdge());
+                edges.add(tableCell.getLeftEdge() + tableCell.getWidth());
             }
         }
 
@@ -87,7 +86,7 @@ public class AbstractWordUtils
         int[] result = new int[sorted.length];
         for ( int i = 0; i < sorted.length; i++ )
         {
-            result[i] = sorted[i].intValue();
+            result[i] = sorted[i];
         }
 
         return result;
@@ -165,45 +164,37 @@ public class AbstractWordUtils
 
         switch ( borderCode.getBorderType() )
         {
-        case 1:
-        case 2:
-            return "solid";
-        case 3:
-            return "double";
-        case 5:
-            return "solid";
-        case 6:
-            return "dotted";
-        case 7:
-        case 8:
-            return "dashed";
-        case 9:
-            return "dotted";
-        case 10:
-        case 11:
-        case 12:
-        case 13:
-        case 14:
-        case 15:
-        case 16:
-        case 17:
-        case 18:
-        case 19:
-            return "double";
-        case 20:
-            return "solid";
-        case 21:
-            return "double";
-        case 22:
-            return "dashed";
-        case 23:
-            return "dashed";
-        case 24:
-            return "ridge";
-        case 25:
-            return "grooved";
-        default:
-            return "solid";
+            case 3:
+            case 10:
+            case 11:
+            case 12:
+            case 13:
+            case 14:
+            case 15:
+            case 16:
+            case 17:
+            case 18:
+            case 19:
+            case 21:
+                return "double";
+            case 6:
+            case 9:
+                return "dotted";
+            case 7:
+            case 8:
+            case 22:
+            case 23:
+                return "dashed";
+            case 24:
+                return "ridge";
+            case 25:
+                return "grooved";
+                case 5:
+            case 1:
+            case 2:
+            case 20:
+            default:
+                return "solid";
         }
     }
 
@@ -213,12 +204,7 @@ public class AbstractWordUtils
         int pt = lineWidth / 8;
         int pte = lineWidth - pt * 8;
 
-        StringBuilder stringBuilder = new StringBuilder();
-        stringBuilder.append( pt );
-        stringBuilder.append( "." );
-        stringBuilder.append( 1000 / 8 * pte );
-        stringBuilder.append( "pt" );
-        return stringBuilder.toString();
+        return pt + "." + 1000 / 8 * pte + "pt";
     }
 
     public static class NumberingState
@@ -294,48 +280,46 @@ public class AbstractWordUtils
 
     public static String getColor( int ico )
     {
-        switch ( ico )
-        {
-        case 1:
-            return "black";
-        case 2:
-            return "blue";
-        case 3:
-            return "cyan";
-        case 4:
-            return "green";
-        case 5:
-            return "magenta";
-        case 6:
-            return "red";
-        case 7:
-            return "yellow";
-        case 8:
-            return "white";
-        case 9:
-            return "darkblue";
-        case 10:
-            return "darkcyan";
-        case 11:
-            return "darkgreen";
-        case 12:
-            return "darkmagenta";
-        case 13:
-            return "darkred";
-        case 14:
-            return "darkyellow";
-        case 15:
-            return "darkgray";
-        case 16:
-            return "lightgray";
-        default:
-            return "black";
+        switch ( ico ) {
+            case 2:
+                return "blue";
+            case 3:
+                return "cyan";
+            case 4:
+                return "green";
+            case 5:
+                return "magenta";
+            case 6:
+                return "red";
+            case 7:
+                return "yellow";
+            case 8:
+                return "white";
+            case 9:
+                return "darkblue";
+            case 10:
+                return "darkcyan";
+            case 11:
+                return "darkgreen";
+            case 12:
+                return "darkmagenta";
+            case 13:
+                return "darkred";
+            case 14:
+                return "darkyellow";
+            case 15:
+                return "darkgray";
+            case 16:
+                return "lightgray";
+            case 1:
+            default:
+                return "black";
         }
     }
 
     public static String getOpacity( int argbValue )
     {
-        int opacity = (int) ( ( argbValue & 0xFF000000) >>> 24 );
+        int opacity = (int) ( ( argbValue & 0xFF000000L) >>> 24 );
         if ( opacity == 0 || opacity == 0xFF )
             return ".0";
 
@@ -403,24 +387,20 @@ public class AbstractWordUtils
         switch ( js )
         {
         case 0:
+        case 7:
             return "start";
         case 1:
+        case 5:
             return "center";
         case 2:
+        case 8:
             return "end";
         case 3:
         case 4:
+        case 9:
             return "justify";
-        case 5:
-            return "center";
         case 6:
             return "left";
-        case 7:
-            return "start";
-        case 8:
-            return "end";
-        case 9:
-            return "justify";
         }
         return "";
     }
@@ -438,8 +418,7 @@ public class AbstractWordUtils
         case 2057:
             return "en-uk";
         default:
-            logger.log( POILogger.WARN, "Uknown or unmapped language code: ",
-                    Integer.valueOf( languageCode ) );
+            logger.log( POILogger.WARN, "Uknown or unmapped language code: ", languageCode);
             return EMPTY;
         }
     }
index 721c72f7e06f6112f7b8dd76a453e1bdec47caa5..fe75ad14993e3bc4124c4402dcceff85ab92d787 100644 (file)
@@ -88,8 +88,7 @@ public class HtmlDocumentFacade
     {
         String exising = element.getAttribute( "class" );
         String addition = getOrCreateCssClass( classNamePrefix, style );
-        String newClassValue = WordToHtmlUtils.isEmpty( exising ) ? addition
-                : ( exising + " " + addition );
+        String newClassValue = AbstractWordUtils.isEmpty( exising ) ? addition : ( exising + " " + addition );
         element.setAttribute( "class", newClassValue );
     }
 
@@ -272,7 +271,7 @@ public class HtmlDocumentFacade
 
     public void setTitle( String titleText )
     {
-        if ( WordToHtmlUtils.isEmpty( titleText ) && this.title != null )
+        if ( AbstractWordUtils.isEmpty( titleText ) && this.title != null )
         {
             this.head.removeChild( this.title );
             this.title = null;
index 4eb352cf56dd34be9784337d8aeaa1949a3cfe28..c92b3d56a3e36bbed058327c0f61d7620acc4ebe 100644 (file)
@@ -44,7 +44,7 @@ public class TextDocumentFacade
 
         root.appendChild( head );
         root.appendChild( body );
-        
+
         title = document.createElement( "title" );
         titleText = document.createTextNode( "" );
         head.appendChild( title );
@@ -159,7 +159,7 @@ public class TextDocumentFacade
 
     public void setTitle( String titleText )
     {
-        if ( WordToHtmlUtils.isEmpty( titleText ) && this.title != null )
+        if ( AbstractWordUtils.isEmpty( titleText ) && this.title != null )
         {
             this.head.removeChild( this.title );
             this.title = null;
index 9f2bbdba80f4f32fc23df995086f3d99621e7159..aa3f1b1d7eff639df1b1e2e8f94eca05f6bd4fbf 100644 (file)
 ==================================================================== */
 package org.apache.poi.hwpf.converter;
 
+import static org.apache.poi.hwpf.converter.AbstractWordUtils.TWIPS_PER_INCH;
+import static org.apache.poi.hwpf.converter.AbstractWordUtils.isNotEmpty;
+import static org.apache.poi.hwpf.converter.AbstractWordUtils.loadDoc;
+import static org.apache.poi.hwpf.converter.WordToFoUtils.*;
+
 import java.io.File;
 import java.util.ArrayList;
 import java.util.LinkedHashSet;
@@ -64,7 +69,7 @@ public class WordToFoConverter extends AbstractWordConverter
 
     /**
      * Java main() interface to interact with {@link WordToFoConverter}
-     * 
+     *
      * <p>
      * Usage: WordToFoConverter infile outfile
      * </p>
@@ -92,7 +97,7 @@ public class WordToFoConverter extends AbstractWordConverter
     static Document process( File docFile ) throws Exception
     {
         final DocumentBuilder docBuild = XMLHelper.newDocumentBuilder();
-        try (final HWPFDocumentCore hwpfDocument = WordToFoUtils.loadDoc( docFile )) {
+        try (final HWPFDocumentCore hwpfDocument = loadDoc( docFile )) {
             WordToFoConverter wordToFoConverter = new WordToFoConverter(docBuild.newDocument());
             wordToFoConverter.processDocument(hwpfDocument);
             return wordToFoConverter.getDocument();
@@ -112,7 +117,7 @@ public class WordToFoConverter extends AbstractWordConverter
     /**
      * Creates new instance of {@link WordToFoConverter}. Can be used for output
      * several {@link HWPFDocument}s into single FO document.
-     * 
+     *
      * @param document
      *            XML DOM Document used as XSL FO document. Shall support
      *            namespaces
@@ -136,18 +141,13 @@ public class WordToFoConverter extends AbstractWordConverter
         return inline;
     }
 
-    protected String createPageMaster( Section section, String type,
-            int sectionIndex )
-    {
-        float height = section.getPageHeight() / WordToFoUtils.TWIPS_PER_INCH;
-        float width = section.getPageWidth() / WordToFoUtils.TWIPS_PER_INCH;
-        float leftMargin = section.getMarginLeft()
-                / WordToFoUtils.TWIPS_PER_INCH;
-        float rightMargin = section.getMarginRight()
-                / WordToFoUtils.TWIPS_PER_INCH;
-        float topMargin = section.getMarginTop() / WordToFoUtils.TWIPS_PER_INCH;
-        float bottomMargin = section.getMarginBottom()
-                / WordToFoUtils.TWIPS_PER_INCH;
+    protected String createPageMaster( Section section, String type, int sectionIndex ) {
+        float height = section.getPageHeight() / TWIPS_PER_INCH;
+        float width = section.getPageWidth() / TWIPS_PER_INCH;
+        float leftMargin = section.getMarginLeft() / TWIPS_PER_INCH;
+        float rightMargin = section.getMarginRight() / TWIPS_PER_INCH;
+        float topMargin = section.getMarginTop() / TWIPS_PER_INCH;
+        float bottomMargin = section.getMarginBottom() / TWIPS_PER_INCH;
 
         // add these to the header
         String pageMasterName = type + "-page" + sectionIndex;
@@ -163,7 +163,7 @@ public class WordToFoConverter extends AbstractWordConverter
 
         /*
          * 6.4.14 fo:region-body
-         * 
+         *
          * The values of the padding and border-width traits must be "0".
          */
         // WordToFoUtils.setBorder(regionBody, sep.getBrcTop(), "top");
@@ -177,8 +177,7 @@ public class WordToFoConverter extends AbstractWordConverter
                     "" + ( section.getNumColumns() ) );
             if ( section.isColumnsEvenlySpaced() )
             {
-                float distance = section.getDistanceBetweenColumns()
-                        / WordToFoUtils.TWIPS_PER_INCH;
+                float distance = section.getDistanceBetweenColumns() / TWIPS_PER_INCH;
                 regionBody.setAttribute( "column-gap", distance + "in" );
             }
             else
@@ -208,15 +207,15 @@ public class WordToFoConverter extends AbstractWordConverter
 
         Triplet triplet = getCharacterRunTriplet( characterRun );
 
-        if ( WordToFoUtils.isNotEmpty( triplet.fontName ) )
-            WordToFoUtils.setFontFamily( inline, triplet.fontName );
-        WordToFoUtils.setBold( inline, triplet.bold );
-        WordToFoUtils.setItalic( inline, triplet.italic );
-        WordToFoUtils.setFontSize( inline, characterRun.getFontSize() / 2 );
-        WordToFoUtils.setCharactersProperties( characterRun, inline );
+        if ( isNotEmpty( triplet.fontName ) )
+            setFontFamily( inline, triplet.fontName );
+        setBold( inline, triplet.bold );
+        setItalic( inline, triplet.italic );
+        setFontSize( inline, characterRun.getFontSize() / 2 );
+        setCharactersProperties( characterRun, inline );
 
         if ( isOutputCharactersLanguage() )
-            WordToFoUtils.setLanguage( characterRun, inline );
+            setLanguage( characterRun, inline );
 
         block.appendChild( inline );
 
@@ -254,16 +253,16 @@ public class WordToFoConverter extends AbstractWordConverter
     protected void processDocumentInformation(
             SummaryInformation summaryInformation )
     {
-        if ( WordToHtmlUtils.isNotEmpty( summaryInformation.getTitle() ) )
+        if ( isNotEmpty( summaryInformation.getTitle() ) )
             foDocumentFacade.setTitle( summaryInformation.getTitle() );
 
-        if ( WordToHtmlUtils.isNotEmpty( summaryInformation.getAuthor() ) )
+        if ( isNotEmpty( summaryInformation.getAuthor() ) )
             foDocumentFacade.setCreator( summaryInformation.getAuthor() );
 
-        if ( WordToHtmlUtils.isNotEmpty( summaryInformation.getKeywords() ) )
+        if ( isNotEmpty( summaryInformation.getKeywords() ) )
             foDocumentFacade.setKeywords( summaryInformation.getKeywords() );
 
-        if ( WordToHtmlUtils.isNotEmpty( summaryInformation.getComments() ) )
+        if ( isNotEmpty( summaryInformation.getComments() ) )
             foDocumentFacade.setDescription( summaryInformation.getComments() );
     }
 
@@ -302,7 +301,7 @@ public class WordToFoConverter extends AbstractWordConverter
         processCharacters( wordDocument, Integer.MIN_VALUE, endnoteTextRange,
                 endnote );
 
-        WordToFoUtils.compactInlines( endnote );
+        compactInlines( endnote );
         this.endnotes.add( endnote );
     }
 
@@ -339,7 +338,7 @@ public class WordToFoConverter extends AbstractWordConverter
         processCharacters( wordDocument, Integer.MIN_VALUE, footnoteTextRange,
                 footnoteBlock );
 
-        WordToFoUtils.compactInlines( footnoteBlock );
+        compactInlines( footnoteBlock );
     }
 
     protected void processHyperlink( HWPFDocumentCore wordDocument,
@@ -360,7 +359,7 @@ public class WordToFoConverter extends AbstractWordConverter
     {
         final Element externalGraphic = foDocumentFacade
                 .createExternalGraphic( url );
-        WordToFoUtils.setPictureProperties( picture, externalGraphic );
+        setPictureProperties( picture, externalGraphic );
         currentBlock.appendChild( externalGraphic );
     }
 
@@ -426,7 +425,7 @@ public class WordToFoConverter extends AbstractWordConverter
         final Element block = foDocumentFacade.createBlock();
         parentFopElement.appendChild( block );
 
-        WordToFoUtils.setParagraphProperties( paragraph, block );
+        setParagraphProperties( paragraph, block );
 
         final int charRuns = paragraph.numCharacterRuns();
 
@@ -437,7 +436,7 @@ public class WordToFoConverter extends AbstractWordConverter
 
         boolean haveAnyText = false;
 
-        if ( WordToFoUtils.isNotEmpty( bulletText ) )
+        if ( isNotEmpty( bulletText ) )
         {
             Element inline = foDocumentFacade.createInline();
             block.appendChild( inline );
@@ -457,7 +456,7 @@ public class WordToFoConverter extends AbstractWordConverter
             block.appendChild( leader );
         }
 
-        WordToFoUtils.compactInlines( block );
+        compactInlines( block );
     }
 
     protected void processSection( HWPFDocumentCore wordDocument,
@@ -485,8 +484,7 @@ public class WordToFoConverter extends AbstractWordConverter
         Element tableHeader = foDocumentFacade.createTableHeader();
         Element tableBody = foDocumentFacade.createTableBody();
 
-        final int[] tableCellEdges = WordToHtmlUtils
-                .buildTableCellEdgesArray( table );
+        final int[] tableCellEdges = buildTableCellEdgesArray( table );
         final int tableRows = table.numRows();
 
         int maxColumns = Integer.MIN_VALUE;
@@ -500,7 +498,7 @@ public class WordToFoConverter extends AbstractWordConverter
             TableRow tableRow = table.getRow( r );
 
             Element tableRowElement = foDocumentFacade.createTableRow();
-            WordToFoUtils.setTableRowProperties( tableRow, tableRowElement );
+            setTableRowProperties( tableRow, tableRowElement );
 
             // index of current element in tableCellEdges[]
             int currentEdgeIndex = 0;
@@ -518,7 +516,7 @@ public class WordToFoConverter extends AbstractWordConverter
                 }
 
                 Element tableCellElement = foDocumentFacade.createTableCell();
-                WordToFoUtils.setTableCellProperties( tableRow, tableCell,
+                setTableCellProperties( tableRow, tableCell,
                         tableCellElement, r == 0, r == tableRows - 1, c == 0,
                         c == rowCells - 1 );
 
index 62c106ef3e7777fd00f17765c052e2f9f6c507bb..b0216a03e38b47e7c178914ab3d2f76d30e1244c 100644 (file)
@@ -23,6 +23,7 @@ import java.io.InputStream;
 
 import org.apache.poi.extractor.POIOLE2TextExtractor;
 import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFDocumentCore;
 import org.apache.poi.hwpf.converter.WordToTextConverter;
 import org.apache.poi.hwpf.usermodel.HeaderStories;
 import org.apache.poi.hwpf.usermodel.Paragraph;
@@ -32,10 +33,10 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 
 /**
  * Class to extract the text from a Word Document.
- * 
+ *
  * You should use either getParagraphText() or getText() unless you have a
  * strong reason otherwise.
- * 
+ *
  * @author Nick Burch
  */
 public final class WordExtractor extends POIOLE2TextExtractor {
@@ -43,17 +44,17 @@ public final class WordExtractor extends POIOLE2TextExtractor {
 
     /**
      * Create a new Word Extractor
-     * 
+     *
      * @param is
      *            InputStream containing the word file
      */
     public WordExtractor( InputStream is ) throws IOException {
-        this( HWPFDocument.verifyAndBuildPOIFS( is ) );
+        this(HWPFDocumentCore.verifyAndBuildPOIFS(is ) );
     }
 
     /**
      * Create a new Word Extractor
-     * 
+     *
      * @param fs
      *            POIFSFileSystem containing the word file
      */
@@ -67,7 +68,7 @@ public final class WordExtractor extends POIOLE2TextExtractor {
 
     /**
      * Create a new Word Extractor
-     * 
+     *
      * @param doc
      *            The HWPFDocument to extract from
      */
index 877b3639c80eb0d35096a3457641feb50506a4a7..c5c183117251cc43daa855c3485db31fe8e56e93 100644 (file)
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
+import org.apache.poi.hwpf.model.types.BKFAbstractType;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
@@ -124,9 +125,9 @@ public class BookmarksTables
         int firstDescriptorsStart = fib.getFcPlcfbkf();
         int firstDescriptorsLength = fib.getLcbPlcfbkf();
         if ( firstDescriptorsStart != 0 && firstDescriptorsLength != 0 )
-            descriptorsFirst = new PlexOfCps( tableStream,
-                    firstDescriptorsStart, firstDescriptorsLength,
-                    BookmarkFirstDescriptor.getSize() );
+            descriptorsFirst = new PlexOfCps(tableStream,
+                 firstDescriptorsStart, firstDescriptorsLength,
+                 BKFAbstractType.getSize() );
 
         int limDescriptorsStart = fib.getFcPlcfbkl();
         int limDescriptorsLength = fib.getLcbPlcfbkl();
index 81c99985dd074ea1870775e54fdaf86beb8a82d0..a33e5af350a751c072d4cc596bd09af25fbb477d 100644 (file)
 ==================================================================== */
 package org.apache.poi.hwpf.model;
 
+import static org.apache.poi.hwpf.model.types.FFDataBaseAbstractType.ITYPE_CHCK;
+import static org.apache.poi.hwpf.model.types.FFDataBaseAbstractType.ITYPE_DROP;
+import static org.apache.poi.hwpf.model.types.FFDataBaseAbstractType.ITYPE_TEXT;
+
+import org.apache.poi.hwpf.model.types.FFDataBaseAbstractType;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.LittleEndianConsts;
@@ -95,12 +100,12 @@ public class FFData
         int offset = startOffset;
 
         this._base = new FFDataBase( std, offset );
-        offset += FFDataBase.getSize();
+        offset += FFDataBaseAbstractType.getSize();
 
         this._xstzName = new Xstz( std, offset );
         offset += this._xstzName.getSize();
 
-        if ( _base.getIType() == FFDataBase.ITYPE_TEXT )
+        if ( _base.getIType() == ITYPE_TEXT )
         {
             _xstzTextDef = new Xstz( std, offset );
             offset += this._xstzTextDef.getSize();
@@ -110,11 +115,10 @@ public class FFData
             this._xstzTextDef = null;
         }
 
-        if ( _base.getIType() == FFDataBase.ITYPE_CHCK
-                || _base.getIType() == FFDataBase.ITYPE_DROP )
+        if ( _base.getIType() == ITYPE_CHCK
+                || _base.getIType() == ITYPE_DROP )
         {
-            this._wDef = Integer
-                    .valueOf( LittleEndian.getUShort( std, offset ) );
+            this._wDef = LittleEndian.getUShort(std, offset);
             offset += LittleEndianConsts.SHORT_SIZE;
         }
         else
@@ -137,10 +141,8 @@ public class FFData
         _xstzExitMcr = new Xstz( std, offset );
         offset += this._xstzExitMcr.getSize();
 
-        if ( _base.getIType() == FFDataBase.ITYPE_DROP )
-        {
+        if ( _base.getIType() == ITYPE_DROP ) {
             _hsttbDropList = new Sttb( std, offset );
-            offset += _hsttbDropList.getSize();
         }
     }
 
@@ -149,7 +151,7 @@ public class FFData
      */
     public int getDefaultDropDownItemIndex()
     {
-        return _wDef.intValue();
+        return _wDef;
     }
 
     public String[] getDropList()
@@ -159,17 +161,17 @@ public class FFData
 
     public int getSize()
     {
-        int size = FFDataBase.getSize();
+        int size = FFDataBaseAbstractType.getSize();
 
         size += _xstzName.getSize();
 
-        if ( _base.getIType() == FFDataBase.ITYPE_TEXT )
+        if ( _base.getIType() == ITYPE_TEXT )
         {
             size += _xstzTextDef.getSize();
         }
 
-        if ( _base.getIType() == FFDataBase.ITYPE_CHCK
-                || _base.getIType() == FFDataBase.ITYPE_DROP )
+        if ( _base.getIType() == ITYPE_CHCK
+                || _base.getIType() == ITYPE_DROP )
         {
             size += LittleEndianConsts.SHORT_SIZE;
         }
@@ -180,7 +182,7 @@ public class FFData
         size += _xstzEntryMcr.getSize();
         size += _xstzExitMcr.getSize();
 
-        if ( _base.getIType() == FFDataBase.ITYPE_DROP )
+        if ( _base.getIType() == ITYPE_DROP )
         {
             size += _hsttbDropList.getSize();
         }
@@ -199,17 +201,17 @@ public class FFData
         int offset = 0;
 
         _base.serialize( buffer, offset );
-        offset += FFDataBase.getSize();
+        offset += FFDataBaseAbstractType.getSize();
 
         offset += _xstzName.serialize( buffer, offset );
 
-        if ( _base.getIType() == FFDataBase.ITYPE_TEXT )
+        if ( _base.getIType() == ITYPE_TEXT )
         {
             offset += _xstzTextDef.serialize( buffer, offset );
         }
 
-        if ( _base.getIType() == FFDataBase.ITYPE_CHCK
-                || _base.getIType() == FFDataBase.ITYPE_DROP )
+        if ( _base.getIType() == ITYPE_CHCK
+                || _base.getIType() == ITYPE_DROP )
         {
             LittleEndian.putUShort( buffer, offset, _wDef );
             offset += LittleEndianConsts.SHORT_SIZE;
@@ -221,9 +223,8 @@ public class FFData
         offset += _xstzEntryMcr.serialize( buffer, offset );
         offset += _xstzExitMcr.serialize( buffer, offset );
 
-        if ( _base.getIType() == FFDataBase.ITYPE_DROP )
-        {
-            offset += _hsttbDropList.serialize( buffer, offset );
+        if ( _base.getIType() == ITYPE_DROP ) {
+            _hsttbDropList.serialize( buffer, offset );
         }
 
         return buffer;
index 76873574ed570469f579b894d158227a0bf0da0b..3122841a7e04d443726cd34953d8014b2ff1dc20 100644 (file)
@@ -22,12 +22,11 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.poi.hwpf.model.types.FSPAAbstractType;
 import org.apache.poi.util.Internal;
 
 /**
  * This class holds all the FSPA (File Shape Address) structures.
- * 
- * @author Squeeself
  */
 @Internal
 public final class FSPATable
@@ -41,12 +40,11 @@ public final class FSPATable
         int offset = fib.getFSPAPlcfOffset( part );
         int length = fib.getFSPAPlcfLength( part );
 
-        PlexOfCps plex = new PlexOfCps( tableStream, offset, length,
-                FSPA.getSize() );
+        PlexOfCps plex = new PlexOfCps(tableStream, offset, length, FSPAAbstractType.getSize() );
         for ( int i = 0; i < plex.length(); i++ )
         {
             GenericPropertyNode property = plex.getProperty( i );
-            _byStart.put( Integer.valueOf( property.getStart() ), property );
+            _byStart.put(property.getStart(), property );
         }
     }
 
@@ -63,13 +61,13 @@ public final class FSPATable
         for ( int i = 0; i < plex.length(); i++ )
         {
             GenericPropertyNode property = plex.getProperty( i );
-            _byStart.put( Integer.valueOf( property.getStart() ), property );
+            _byStart.put(property.getStart(), property );
         }
     }
 
     public FSPA getFspaFromCp( int cp )
     {
-        GenericPropertyNode propertyNode = _byStart.get( Integer.valueOf( cp ) );
+        GenericPropertyNode propertyNode = _byStart.get(cp);
         if ( propertyNode == null )
         {
             return null;
@@ -96,7 +94,7 @@ public final class FSPATable
             buf.append( "  " ).append(i).append( " => \t" );
 
             try {
-                FSPA fspa = getFspaFromCp( i.intValue() );
+                FSPA fspa = getFspaFromCp(i);
                 buf.append(fspa);
             } catch ( Exception exc ) {
                 buf.append( exc.getMessage() );
index d1a9389dcd5ec3ca73d73db5e5ccc22795f67a67..15dca2fb16766ffb4fad11c3021ae63229a3f921 100644 (file)
@@ -24,6 +24,8 @@ import java.lang.reflect.Modifier;
 import java.util.HashSet;
 import java.util.Locale;
 
+import org.apache.poi.hwpf.model.types.FibBaseAbstractType;
+import org.apache.poi.hwpf.model.types.FibRgW97AbstractType;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
@@ -69,20 +71,18 @@ public final class FileInformationBlock
         int offset = 0;
 
         _fibBase = new FibBase( mainDocument, offset );
-        offset = FibBase.getSize();
+        offset = FibBaseAbstractType.getSize();
         assert offset == 32;
 
         _csw = LittleEndian.getUShort( mainDocument, offset );
         offset += LittleEndianConsts.SHORT_SIZE;
-        assert offset == 34;
 
         _fibRgW = new FibRgW97( mainDocument, offset );
-        offset += FibRgW97.getSize();
+        offset += FibRgW97AbstractType.getSize();
         assert offset == 62;
 
         _cslw = LittleEndian.getUShort( mainDocument, offset );
         offset += LittleEndianConsts.SHORT_SIZE;
-        assert offset == 64;
 
         if ( _fibBase.getNFib() < 105 )
         {
@@ -1079,13 +1079,13 @@ public final class FileInformationBlock
         _cbRgFcLcb = _fieldHandler.getFieldsCount();
 
         _fibBase.serialize( mainStream, 0 );
-        int offset = FibBase.getSize();
+        int offset = FibBaseAbstractType.getSize();
 
         LittleEndian.putUShort( mainStream, offset, _csw );
         offset += LittleEndianConsts.SHORT_SIZE;
 
         _fibRgW.serialize( mainStream, offset );
-        offset += FibRgW97.getSize();
+        offset += FibRgW97AbstractType.getSize();
 
         LittleEndian.putUShort( mainStream, offset, _cslw );
         offset += LittleEndianConsts.SHORT_SIZE;
@@ -1114,7 +1114,7 @@ public final class FileInformationBlock
 
     public int getSize()
     {
-        return FibBase.getSize() + LittleEndianConsts.SHORT_SIZE + FibRgW97.getSize()
+        return FibBaseAbstractType.getSize() + LittleEndianConsts.SHORT_SIZE + FibRgW97AbstractType.getSize()
                 + LittleEndianConsts.SHORT_SIZE + FibRgLw97.getSize()
                 + LittleEndianConsts.SHORT_SIZE + _fieldHandler.sizeInBytes();
     }
index fa5d505d895288d5bb9bf7324964931a0fdfc12a..8f23eeb5cb066a799c908216e4794af6f6e20eaa 100644 (file)
@@ -18,6 +18,7 @@ package org.apache.poi.hwpf.model;
 
 import java.util.Objects;
 
+import org.apache.poi.hwpf.model.types.LFOLVLBaseAbstractType;
 import org.apache.poi.util.Internal;
 
 /**
@@ -36,7 +37,7 @@ public final class ListFormatOverrideLevel
     public ListFormatOverrideLevel( byte[] buf, int offset )
     {
         _base = new LFOLVLBase( buf, offset );
-        offset += LFOLVLBase.getSize();
+        offset += LFOLVLBaseAbstractType.getSize();
 
         if ( _base.isFFormatting() )
         {
@@ -78,7 +79,7 @@ public final class ListFormatOverrideLevel
 
     public int getSizeInBytes()
     {
-        return _lvl == null ? LFOLVLBase.getSize() : LFOLVLBase.getSize()
+        return _lvl == null ? LFOLVLBaseAbstractType.getSize() : LFOLVLBaseAbstractType.getSize()
                 + _lvl.getSizeInBytes();
     }
 
@@ -103,7 +104,7 @@ public final class ListFormatOverrideLevel
 
         byte[] buf = new byte[getSizeInBytes()];
         _base.serialize( buf, offset );
-        offset += LFOLVLBase.getSize();
+        offset += LFOLVLBaseAbstractType.getSize();
 
         if ( _lvl != null )
         {
index 011bc07296b0eda266f848441c2698df3ef9b8d8..e77ec7a9a9c408e6a71b836d45ecf625e0e70511 100644 (file)
@@ -19,6 +19,7 @@ package org.apache.poi.hwpf.model;
 
 import java.util.Arrays;
 
+import org.apache.poi.hwpf.model.types.LVLFAbstractType;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.POILogFactory;
@@ -54,7 +55,7 @@ public final class ListLevel
      * from the other paragraphs in the list. Any element in the rgtchar field
      * of this Xst can be a placeholder. Each placeholder is an unsigned 2-byte
      * integer that specifies the zero-based level that the placeholder is for.
-     * 
+     *
      * Each placeholder MUST have a value that is less than or equal to the
      * zero-based level of the list that this LVL represents. The indexes of the
      * placeholders are specified by lvlf.rgbxchNums. Placeholders that
@@ -162,7 +163,7 @@ public final class ListLevel
 
     public int getSizeInBytes()
     {
-        return LVLF.getSize() + _lvlf.getCbGrpprlChpx()
+        return LVLFAbstractType.getSize() + _lvlf.getCbGrpprlChpx()
                 + _lvlf.getCbGrpprlPapx() + _xst.getSize();
     }
 
@@ -182,35 +183,35 @@ public final class ListLevel
     /**
      * An unsigned integer that specifies the first (most-significant) zero-based level after which the number sequence of this level does not restart. The number sequence of this level does restart after any level that is more significant than the specified level. This MUST be less than or equal to the zero-based level of the list to which this LVLF corresponds.
      * <p>see [MS-DOC], v20140721, 2.9.150</p>
-     * 
+     *
      * @return the first ({@code 0} is the most significant) level after which
      * the numbering does not restart or {@code -1} if no restart is applicable
      */
-    public short getRestart() {        
+    public short getRestart() {
        return _lvlf.isFNoRestart() ? _lvlf.getIlvlRestartLim() : -1;
     }
-    
+
     /**
      * Determines if the number formatting shall be overridden by
      * {@code msonfcArabic}; unless it originally was {@code msonfcArabicLZ}
      * in which case it is preserved.
      * <p>see [MS-DOC], v20140721, 2.9.150 and [MS-OSHARED], v20140721, 2.2.1.3</p>
-     * 
+     *
      * @return {@code true} if the level numbering of this and all more
      * significant levels must be overridden; {@code false} otherwise
      */
     public boolean isLegalNumbering() {
        return _lvlf.isFLegal();
     }
-    
+
     /**
      * Array which specifies the character offsets of the level numbers in a
      * level numbering string.
      * <p>see [MS-DOC], v20140721, 2.9.150</p>
-     * 
-     * @return {@code 0}-terminated array, unless it is full 
+     *
+     * @return {@code 0}-terminated array, unless it is full
      */
-    public byte[] getLevelNumberingPlaceholderOffsets() {      
+    public byte[] getLevelNumberingPlaceholderOffsets() {
        return _lvlf.getRgbxchNums();
     }
 
@@ -219,7 +220,7 @@ public final class ListLevel
         int offset = startOffset;
 
         _lvlf = new LVLF( data, offset );
-        offset += LVLF.getSize();
+        offset += LVLFAbstractType.getSize();
 
         //short -- no need to safely allocate
         _grpprlPapx = new byte[_lvlf.getCbGrpprlPapx()];
@@ -292,7 +293,7 @@ public final class ListLevel
         _lvlf.setCbGrpprlChpx( (short) _grpprlChpx.length );
         _lvlf.setCbGrpprlPapx( (short) _grpprlPapx.length );
         _lvlf.serialize( buf, offset );
-        offset += LVLF.getSize();
+        offset += LVLFAbstractType.getSize();
 
         System.arraycopy( _grpprlPapx, 0, buf, offset, _grpprlPapx.length );
         offset += _grpprlPapx.length;
index 2b540976061c550978934dfccef2744223cdedb7..9b02a94d4f011e49648e377ce6b213942147cd4c 100644 (file)
@@ -23,6 +23,7 @@ import java.util.LinkedHashMap;
 import java.util.NoSuchElementException;
 import java.util.Objects;
 
+import org.apache.poi.hwpf.model.types.LSTFAbstractType;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.LittleEndianConsts;
@@ -58,13 +59,13 @@ public final class ListTables
 
         int cLst = LittleEndian.getShort( tableStream, offset );
         offset += LittleEndianConsts.SHORT_SIZE;
-        int levelOffset = offset + ( cLst * LSTF.getSize() );
+        int levelOffset = offset + ( cLst * LSTFAbstractType.getSize() );
 
         for ( int x = 0; x < cLst; x++ )
         {
             ListData lst = new ListData( tableStream, offset );
-            _listMap.put( Integer.valueOf( lst.getLsid() ), lst );
-            offset += LSTF.getSize();
+            _listMap.put(lst.getLsid(), lst );
+            offset += LSTFAbstractType.getSize();
 
             int num = lst.numLevels();
             for ( int y = 0; y < num; y++ )
@@ -96,10 +97,9 @@ public final class ListTables
     for(ListData lst : _listMap.values()) {
       tableStream.write(lst.toByteArray());
       ListLevel[] lvls = lst.getLevels();
-      for (int y = 0; y < lvls.length; y++)
-      {
-        levelBuf.write(lvls[y].toByteArray());
-      }
+        for (ListLevel lvl : lvls) {
+            levelBuf.write(lvl.toByteArray());
+        }
     }
 
         /*
@@ -135,13 +135,11 @@ public final class ListTables
 
     /**
      * Get the ListLevel for a given lsid and level
-     * @param lsid
-     * @param level
      * @return ListLevel if found, or <code>null</code> if ListData can't be found or if level is > that available
      */
   public ListLevel getLevel(int lsid, int level)
   {
-    ListData lst = _listMap.get(Integer.valueOf(lsid));
+    ListData lst = _listMap.get(lsid);
     if (lst == null) {
         if (log.check(POILogger.WARN)) {
             log.log(POILogger.WARN, "ListData for " +
@@ -160,7 +158,7 @@ public final class ListTables
 
   public ListData getListData(int lsid)
   {
-    return _listMap.get(Integer.valueOf(lsid));
+    return _listMap.get(lsid);
   }
 
     @Override
@@ -180,25 +178,18 @@ public final class ListTables
         ListTables other = (ListTables) obj;
         if ( !_listMap.equals( other._listMap ) )
             return false;
-        if ( _plfLfo == null )
-        {
-            if ( other._plfLfo != null )
-                return false;
-        }
-        else if ( !_plfLfo.equals( other._plfLfo ) )
-            return false;
-        return true;
+        return Objects.equals(_plfLfo, other._plfLfo);
     }
 
     public int addList( ListData lst, LFO lfo, LFOData lfoData )
     {
         int lsid = lst.getLsid();
-        while ( _listMap.get( Integer.valueOf( lsid ) ) != null )
+        while (_listMap.containsKey(lsid))
         {
             lsid = lst.resetListID();
             lfo.setLsid( lsid );
         }
-        _listMap.put( Integer.valueOf( lsid ), lst );
+        _listMap.put(lsid, lst );
 
         if ( lfo == null && lfoData != null )
         {
index 24b0328b49bcdc9c518fba3a02639264f2d7835a..92fa5287f060a8747ac830836776fd72cf7f0dd6 100644 (file)
@@ -19,18 +19,18 @@ package org.apache.poi.hwpf.model;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
+import org.apache.poi.hwpf.model.types.FRDAbstractType;
 import org.apache.poi.util.Internal;
 
 /**
  * Holds information about document notes (footnotes or ending notes)
- * 
+ *
  * @author Sergey Vladimirov (vlsergey {at} gmail {doc} com)
  */
 @Internal
 public class NotesTables
 {
-    private PlexOfCps descriptors = new PlexOfCps(
-            FootnoteReferenceDescriptor.getSize() );
+    private PlexOfCps descriptors = new PlexOfCps(FRDAbstractType.getSize() );
 
     private final NoteType noteType;
 
@@ -72,7 +72,7 @@ public class NotesTables
 
         if ( referencesStart != 0 && referencesLength != 0 )
             this.descriptors = new PlexOfCps( tableStream, referencesStart,
-                    referencesLength, FootnoteReferenceDescriptor.getSize() );
+                    referencesLength, FRDAbstractType.getSize() );
 
         int textPositionsStart = fib.getNotesTextPositionsOffset( noteType );
         int textPositionsLength = fib.getNotesTextPositionsSize( noteType );
index ba3293ea6af3ca1673c06ce479d19e1d6bb95eab..f75de37920922bf1afdddb5d1d163e4cfb408ec4 100644 (file)
@@ -22,6 +22,7 @@ import java.util.List;
 import org.apache.poi.ddf.DefaultEscherRecordFactory;
 import org.apache.poi.ddf.EscherContainerRecord;
 import org.apache.poi.ddf.EscherRecord;
+import org.apache.poi.hwpf.model.types.PICFAbstractType;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 
@@ -47,7 +48,7 @@ public class PICFAndOfficeArtData
         int offset = startOffset;
 
         _picf = new PICF( dataStream, offset );
-        offset += PICF.getSize();
+        offset += PICFAbstractType.getSize();
 
         if ( _picf.getMm() == 0x0066 )
         {
index e2a17398912b8bee1db594f203d47ff1eff52c60..fb82dbb68e76516a52c53cdc7c0237844b214d0c 100644 (file)
@@ -23,6 +23,7 @@ import java.io.IOException;
 import java.util.Arrays;
 import java.util.NoSuchElementException;
 
+import org.apache.poi.hwpf.model.types.LFOAbstractType;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.LittleEndianConsts;
 import org.apache.poi.util.POILogFactory;
@@ -87,7 +88,7 @@ public class PlfLfo
         for ( int x = 0; x < _lfoMac; x++ )
         {
             LFO lfo = new LFO( tableStream, offset );
-            offset += LFO.getSize();
+            offset += LFOAbstractType.getSize();
             _rgLfo[x] = lfo;
         }
 
@@ -205,12 +206,12 @@ public class PlfLfo
 
         LittleEndian.putUInt( _lfoMac, outputStream );
 
-        byte[] bs = new byte[LFO.getSize() * _lfoMac];
+        byte[] bs = new byte[LFOAbstractType.getSize() * _lfoMac];
         for ( int i = 0; i < _lfoMac; i++ )
         {
-            _rgLfo[i].serialize( bs, i * LFO.getSize() );
+            _rgLfo[i].serialize( bs, i * LFOAbstractType.getSize() );
         }
-        outputStream.write( bs, 0, LFO.getSize() * _lfoMac );
+        outputStream.write( bs, 0, LFOAbstractType.getSize() * _lfoMac );
 
         for ( int i = 0; i < _lfoMac; i++ )
         {
index c45a6b17988bb7714414606dc5d83463af6533c8..60de580d807607f9468c2166f3aca7e274ba48f3 100644 (file)
@@ -18,7 +18,9 @@
 package org.apache.poi.hwpf.model;
 
 import java.util.Arrays;
+import java.util.Objects;
 
+import org.apache.poi.hwpf.model.types.StdfBaseAbstractType;
 import org.apache.poi.hwpf.usermodel.CharacterProperties;
 import org.apache.poi.hwpf.usermodel.ParagraphProperties;
 import org.apache.poi.util.IOUtils;
@@ -72,13 +74,11 @@ public final class StyleDescription {
         } else if (baseLength == 0x000A) {
             readStdfPost2000 = false;
         } else {
-            logger.log(POILogger.WARN,
-                    "Style definition has non-standard size of ",
-                    Integer.valueOf(baseLength));
+            logger.log(POILogger.WARN, "Style definition has non-standard size of ", baseLength);
         }
 
         _stdfBase = new StdfBase(std, offset);
-        offset += StdfBase.getSize();
+        offset += StdfBaseAbstractType.getSize();
 
         if (readStdfPost2000) {
             _stdfPost2000 = new StdfPost2000(std, offset);
@@ -146,12 +146,7 @@ public final class StyleDescription {
     }
 
     public byte[] getPAPX() {
-        switch (_stdfBase.getStk()) {
-            case PARAGRAPH_STYLE:
-                return _upxs[0].getUPX();
-            default:
-                return null;
-        }
+        return _stdfBase.getStk() == PARAGRAPH_STYLE ? _upxs[0].getUPX() : null;
     }
 
     @Deprecated
@@ -201,18 +196,18 @@ public final class StyleDescription {
         char[] letters = _name.toCharArray();
         LittleEndian.putShort(buf, _baseLength, (short) letters.length);
         offset += LittleEndianConsts.SHORT_SIZE;
-        for (int x = 0; x < letters.length; x++) {
-            LittleEndian.putShort(buf, offset, (short) letters[x]);
+        for (char letter : letters) {
+            LittleEndian.putShort(buf, offset, (short) letter);
             offset += LittleEndianConsts.SHORT_SIZE;
         }
         // get past the null delimiter for the name.
         offset += LittleEndianConsts.SHORT_SIZE;
 
-        for (int x = 0; x < _upxs.length; x++) {
-            short upxSize = (short) _upxs[x].size();
+        for (UPX upx : _upxs) {
+            short upxSize = (short) upx.size();
             LittleEndian.putShort(buf, offset, upxSize);
             offset += LittleEndianConsts.SHORT_SIZE;
-            System.arraycopy(_upxs[x].getUPX(), 0, buf, offset, upxSize);
+            System.arraycopy(upx.getUPX(), 0, buf, offset, upxSize);
             offset += upxSize + (upxSize % 2);
         }
 
@@ -228,24 +223,16 @@ public final class StyleDescription {
     public boolean equals(Object obj) {
         if (this == obj)
             return true;
-        if (obj == null)
-            return false;
-        if (getClass() != obj.getClass())
+        if (!(obj instanceof StyleDescription))
             return false;
         StyleDescription other = (StyleDescription) obj;
-        if (_name == null) {
-            if (other._name != null)
-                return false;
-        } else if (!_name.equals(other._name))
-            return false;
-        if (_stdfBase == null) {
-            if (other._stdfBase != null)
-                return false;
-        } else if (!_stdfBase.equals(other._stdfBase))
+        if (!Objects.equals(_name, other._name)) {
             return false;
-        if (!Arrays.equals(_upxs, other._upxs))
+        }
+        if (!Objects.equals(_stdfBase, other._stdfBase)) {
             return false;
-        return true;
+        }
+        return Arrays.equals(_upxs, other._upxs);
     }
 
     @Override
index 3a53a8b6628032b30c854be43195cdf305dc5500..6bb1f3b53a5377aacc8af6aeb6d5d5b922083f9d 100644 (file)
@@ -89,7 +89,6 @@ public final class StyleSheet {
          */
 
         _stshif = new Stshif(tableStream, offset);
-        offset += Stshif.getSize();
 
         // shall we discard cbLSD and mpstilsd?
 
@@ -144,9 +143,9 @@ public final class StyleSheet {
         out.write(buf);
 
         byte[] sizeHolder = new byte[2];
-        for (int x = 0; x < _styleDescriptions.length; x++) {
-            if (_styleDescriptions[x] != null) {
-                byte[] std = _styleDescriptions[x].toByteArray();
+        for (StyleDescription styleDescription : _styleDescriptions) {
+            if (styleDescription != null) {
+                byte[] std = styleDescription.toByteArray();
 
                 // adjust the size so it is always on a word boundary
                 LittleEndian.putShort(sizeHolder, 0, (short) ((std.length) + (std.length % 2)));
@@ -179,7 +178,7 @@ public final class StyleSheet {
             StyleDescription tsd = this._styleDescriptions[i];
             StyleDescription osd = ss._styleDescriptions[i];
             if (tsd == null && osd == null) continue;
-            if (tsd == null || osd == null || !osd.equals(tsd)) return false;
+            if (osd == null || !osd.equals(tsd)) return false;
         }
 
         return true;
index 64b83b7f8f9b43de4b1c6d50818affcdc694b7e8..ddd7b52aa2a9c8c5c597ec2664c1b07704f1bc02 100644 (file)
@@ -24,6 +24,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.poi.hwpf.model.TabDescriptor;
+import org.apache.poi.hwpf.model.types.TBDAbstractType;
 import org.apache.poi.hwpf.usermodel.BorderCode;
 import org.apache.poi.hwpf.usermodel.DateAndTime;
 import org.apache.poi.hwpf.usermodel.DropCapSpecifier;
@@ -155,7 +156,7 @@ public final class ParagraphSprmUncompressor
         newPAP.setFNoLnn (sprm.getOperand() != 0);
         break;
       case 0xd:
-        /**handle tabs . variable parameter. seperate processing needed*/
+        // handle tabs . variable parameter. seperate processing needed
         handleTabs(newPAP, sprm);
         break;
       case 0xe:
@@ -204,7 +205,7 @@ public final class ParagraphSprmUncompressor
         break;
       case 0x1b:
         byte param = (byte)sprm.getOperand();
-        /** @todo handle paragraph postioning*/
+        // TODO: handle paragraph postioning
         byte pcVert = (byte) ((param & 0x0c) >> 2);
         byte pcHorz = (byte) (param & 0x03);
         if (pcVert != 3)
@@ -430,12 +431,12 @@ public final class ParagraphSprmUncompressor
     Map<Integer, TabDescriptor> tabMap = new HashMap<>();
     for (int x = 0; x < tabPositions.length; x++)
     {
-      tabMap.put(Integer.valueOf(tabPositions[x]), tabDescriptors[x]);
+      tabMap.put(tabPositions[x], tabDescriptors[x]);
     }
 
     for (int x = 0; x < delSize; x++)
     {
-      tabMap.remove(Integer.valueOf(LittleEndian.getShort(grpprl, offset)));
+      tabMap.remove((int) LittleEndian.getShort(grpprl, offset));
       offset += LittleEndianConsts.SHORT_SIZE;
     }
 
@@ -443,8 +444,8 @@ public final class ParagraphSprmUncompressor
     int start = offset;
     for (int x = 0; x < addSize; x++)
     {
-      Integer key = Integer.valueOf(LittleEndian.getShort(grpprl, offset));
-      TabDescriptor val = new TabDescriptor( grpprl, start + ((TabDescriptor.getSize() * addSize) + x) );
+      Integer key = (int) LittleEndian.getShort(grpprl, offset);
+      TabDescriptor val = new TabDescriptor( grpprl, start + ((TBDAbstractType.getSize() * addSize) + x) );
       tabMap.put(key, val);
       offset += LittleEndianConsts.SHORT_SIZE;
     }
@@ -458,7 +459,7 @@ public final class ParagraphSprmUncompressor
     for (int x = 0; x < tabPositions.length; x++)
     {
       Integer key = list.get(x);
-      tabPositions[x] = key.intValue();
+      tabPositions[x] = key;
       if (tabMap.containsKey( key ))
           tabDescriptors[x] = tabMap.get(key);
       else