You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2021/04/13 21:37:33 UTC

svn commit: r1888746 [2/3] - in /poi/trunk/poi-scratchpad: ./ src/main/java/org/apache/poi/hpbf/dev/ src/main/java/org/apache/poi/hslf/record/ src/main/java/org/apache/poi/hsmf/extractor/ src/main/java/org/apache/poi/hssf/converter/ src/main/java/org/a...

Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hssf/converter/ExcelToHtmlConverter.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hssf/converter/ExcelToHtmlConverter.java?rev=1888746&r1=1888745&r2=1888746&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hssf/converter/ExcelToHtmlConverter.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hssf/converter/ExcelToHtmlConverter.java Tue Apr 13 21:37:33 2021
@@ -16,6 +16,16 @@
 ==================================================================== */
 package org.apache.poi.hssf.converter;
 
+import static org.apache.poi.hssf.converter.AbstractExcelUtils.appendAlign;
+import static org.apache.poi.hssf.converter.AbstractExcelUtils.buildMergedRangesMap;
+import static org.apache.poi.hssf.converter.AbstractExcelUtils.getBorderStyle;
+import static org.apache.poi.hssf.converter.AbstractExcelUtils.getBorderWidth;
+import static org.apache.poi.hssf.converter.AbstractExcelUtils.getColor;
+import static org.apache.poi.hssf.converter.AbstractExcelUtils.getMergedRange;
+import static org.apache.poi.hssf.converter.AbstractExcelUtils.isEmpty;
+import static org.apache.poi.hssf.converter.AbstractExcelUtils.isNotEmpty;
+import static org.apache.poi.hssf.converter.AbstractExcelUtils.loadXls;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -53,8 +63,6 @@ import org.w3c.dom.Text;
 
 /**
  * Converts xls files (97-2007) to HTML file.
- *
- * @author Sergey Vladimirov (vlsergey {at} gmail {dot} com)
  */
 @Beta
 public class ExcelToHtmlConverter extends AbstractExcelConverter {
@@ -69,37 +77,36 @@ public class ExcelToHtmlConverter extend
      * Where infile is an input .xls file ( Word 97-2007) which will be rendered
      * as HTML into outfile
      */
-    public static void main( String[] args ) throws Exception {
-        if ( args.length < 2 ) {
-            System.err.println( "Usage: ExcelToHtmlConverter <inputFile.xls> <saveTo.html>" );
+    public static void main(String[] args) throws Exception {
+        if (args.length < 2) {
+            System.err.println("Usage: ExcelToHtmlConverter <inputFile.xls> <saveTo.html>");
             return;
         }
 
-        System.out.println( "Converting " + args[0] );
-        System.out.println( "Saving output to " + args[1] );
+        System.out.println("Converting " + args[0]);
+        System.out.println("Saving output to " + args[1]);
 
-        Document doc = ExcelToHtmlConverter.process( new File( args[0] ) );
+        Document doc = ExcelToHtmlConverter.process(new File(args[0]));
 
-        DOMSource domSource = new DOMSource( doc );
-        StreamResult streamResult = new StreamResult( new File(args[1]) );
+        DOMSource domSource = new DOMSource(doc);
+        StreamResult streamResult = new StreamResult(new File(args[1]));
 
         Transformer serializer = XMLHelper.newTransformer();
         // TODO set encoding from a command argument
-        serializer.setOutputProperty( OutputKeys.METHOD, "html" );
-        serializer.transform( domSource, streamResult );
+        serializer.setOutputProperty(OutputKeys.METHOD, "html");
+        serializer.transform(domSource, streamResult);
     }
 
     /**
      * Converts Excel file (97-2007) into HTML file.
      *
-     * @param xlsFile
-     *            workbook file to process
+     * @param xlsFile workbook file to process
      * @return DOM representation of result HTML
-     * @throws IOException If an error occurs reading or writing files
+     * @throws IOException                  If an error occurs reading or writing files
      * @throws ParserConfigurationException If configuration is incorrect
      */
-    public static Document process( File xlsFile ) throws IOException, ParserConfigurationException {
-        try (HSSFWorkbook workbook = AbstractExcelUtils.loadXls(xlsFile)) {
+    public static Document process(File xlsFile) throws IOException, ParserConfigurationException {
+        try (HSSFWorkbook workbook = loadXls(xlsFile)) {
             return ExcelToHtmlConverter.process(workbook);
         }
     }
@@ -109,10 +116,10 @@ public class ExcelToHtmlConverter extend
      *
      * @param xlsStream workbook stream to process
      * @return DOM representation of result HTML
-     * @throws IOException If an error occurs reading or writing files
+     * @throws IOException                  If an error occurs reading or writing files
      * @throws ParserConfigurationException If configuration is incorrect
      */
-    public static Document process( InputStream xlsStream ) throws IOException, ParserConfigurationException {
+    public static Document process(InputStream xlsStream) throws IOException, ParserConfigurationException {
         try (HSSFWorkbook workbook = new HSSFWorkbook(xlsStream)) {
             return ExcelToHtmlConverter.process(workbook);
         }
@@ -123,13 +130,13 @@ public class ExcelToHtmlConverter extend
      *
      * @param workbook workbook instance to process
      * @return DOM representation of result HTML
-     * @throws IOException If an error occurs reading or writing files
+     * @throws IOException                  If an error occurs reading or writing files
      * @throws ParserConfigurationException If configuration is incorrect
      */
-    public static Document process( HSSFWorkbook workbook ) throws IOException, ParserConfigurationException {
+    public static Document process(HSSFWorkbook workbook) throws IOException, ParserConfigurationException {
         ExcelToHtmlConverter excelToHtmlConverter = new ExcelToHtmlConverter(
-                XMLHelper.newDocumentBuilder().newDocument() );
-        excelToHtmlConverter.processWorkbook( workbook );
+            XMLHelper.newDocumentBuilder().newDocument());
+        excelToHtmlConverter.processWorkbook(workbook);
         return excelToHtmlConverter.getDocument();
     }
 
@@ -145,221 +152,215 @@ public class ExcelToHtmlConverter extend
 
     private String cssClassPrefixTable = "t";
 
-    private Map<Short, String> excelStyleToClass = new LinkedHashMap<>();
+    private final Map<Short, String> excelStyleToClass = new LinkedHashMap<>();
 
     private final HtmlDocumentFacade htmlDocumentFacade;
 
     private boolean useDivsToSpan;
 
-    public ExcelToHtmlConverter( Document doc )
-    {
-        htmlDocumentFacade = new HtmlDocumentFacade( doc );
+    public ExcelToHtmlConverter(Document doc) {
+        htmlDocumentFacade = new HtmlDocumentFacade(doc);
     }
 
-    public ExcelToHtmlConverter( HtmlDocumentFacade htmlDocumentFacade ) {
+    public ExcelToHtmlConverter(HtmlDocumentFacade htmlDocumentFacade) {
         this.htmlDocumentFacade = htmlDocumentFacade;
     }
 
-    protected String buildStyle( HSSFWorkbook workbook, HSSFCellStyle cellStyle ) {
+    protected String buildStyle(HSSFWorkbook workbook, HSSFCellStyle cellStyle) {
         StringBuilder style = new StringBuilder();
 
-        style.append( "white-space:pre-wrap;" );
-        ExcelToHtmlUtils.appendAlign( style, cellStyle.getAlignment() );
+        style.append("white-space:pre-wrap;");
+        appendAlign(style, cellStyle.getAlignment());
 
         switch (cellStyle.getFillPattern()) {
             // no fill
-            case NO_FILL: break;
+            case NO_FILL:
+                break;
             case SOLID_FOREGROUND:
                 final HSSFColor foregroundColor = cellStyle.getFillForegroundColorColor();
-                if ( foregroundColor == null ) break;
-                String fgCol = AbstractExcelUtils.getColor( foregroundColor );
+                if (foregroundColor == null) {
+                    break;
+                }
+                String fgCol = getColor(foregroundColor);
                 style.append("background-color:").append(fgCol).append(";");
                 break;
             default:
                 final HSSFColor backgroundColor = cellStyle.getFillBackgroundColorColor();
-                if ( backgroundColor == null ) break;
-                String bgCol = AbstractExcelUtils.getColor( backgroundColor );
+                if (backgroundColor == null) {
+                    break;
+                }
+                String bgCol = getColor(backgroundColor);
                 style.append("background-color:").append(bgCol).append(";");
                 break;
         }
 
-        buildStyle_border( workbook, style, "top", cellStyle.getBorderTop(),
-                cellStyle.getTopBorderColor() );
-        buildStyle_border( workbook, style, "right",
-                cellStyle.getBorderRight(), cellStyle.getRightBorderColor() );
-        buildStyle_border( workbook, style, "bottom",
-                cellStyle.getBorderBottom(), cellStyle.getBottomBorderColor() );
-        buildStyle_border( workbook, style, "left", cellStyle.getBorderLeft(),
-                cellStyle.getLeftBorderColor() );
+        buildStyle_border(workbook, style, "top", cellStyle.getBorderTop(),
+            cellStyle.getTopBorderColor());
+        buildStyle_border(workbook, style, "right",
+            cellStyle.getBorderRight(), cellStyle.getRightBorderColor());
+        buildStyle_border(workbook, style, "bottom",
+            cellStyle.getBorderBottom(), cellStyle.getBottomBorderColor());
+        buildStyle_border(workbook, style, "left", cellStyle.getBorderLeft(),
+            cellStyle.getLeftBorderColor());
 
-        HSSFFont font = cellStyle.getFont( workbook );
-        buildStyle_font( workbook, style, font );
+        HSSFFont font = cellStyle.getFont(workbook);
+        buildStyle_font(workbook, style, font);
 
         return style.toString();
     }
 
-    private void buildStyle_border( HSSFWorkbook workbook, StringBuilder style,
-            String type, BorderStyle xlsBorder, short borderColor ) {
-        if ( xlsBorder == BorderStyle.NONE ) {
+    private void buildStyle_border(HSSFWorkbook workbook, StringBuilder style,
+        String type, BorderStyle xlsBorder, short borderColor) {
+        if (xlsBorder == BorderStyle.NONE) {
             return;
         }
 
         StringBuilder borderStyle = new StringBuilder();
-        borderStyle.append( AbstractExcelUtils.getBorderWidth( xlsBorder ) );
-        borderStyle.append( ' ' );
-        borderStyle.append( AbstractExcelUtils.getBorderStyle( xlsBorder ) );
-
-        final HSSFColor color = workbook.getCustomPalette().getColor(
-                borderColor );
-        if ( color != null )
-        {
-            borderStyle.append( ' ' );
-            borderStyle.append( AbstractExcelUtils.getColor( color ) );
+        borderStyle.append(getBorderWidth(xlsBorder));
+        borderStyle.append(' ');
+        borderStyle.append(getBorderStyle(xlsBorder));
+
+        final HSSFColor color = workbook.getCustomPalette().getColor(borderColor);
+        if (color != null) {
+            borderStyle.append(' ');
+            borderStyle.append(getColor(color));
         }
 
         style.append("border-").append(type).append(":").append(borderStyle).append(";");
     }
 
-    void buildStyle_font( HSSFWorkbook workbook, StringBuilder style,
-            HSSFFont font ) {
-        if ( font.getBold() )
-        {
-            style.append( "font-weight:bold;" );
+    void buildStyle_font(HSSFWorkbook workbook, StringBuilder style,
+        HSSFFont font) {
+        if (font.getBold()) {
+            style.append("font-weight:bold;");
         }
 
         final HSSFColor fontColor = workbook.getCustomPalette().getColor(
-                font.getColor() );
-        if ( fontColor != null )
-            style.append("color: ").append(AbstractExcelUtils.getColor(fontColor)).append("; ");
+            font.getColor());
+        if (fontColor != null) {
+            style.append("color: ").append(getColor(fontColor)).append("; ");
+        }
 
-        if ( font.getFontHeightInPoints() != 0 )
+        if (font.getFontHeightInPoints() != 0) {
             style.append("font-size:").append(font.getFontHeightInPoints()).append("pt;");
+        }
 
-        if ( font.getItalic() )
-        {
-            style.append( "font-style:italic;" );
+        if (font.getItalic()) {
+            style.append("font-style:italic;");
         }
     }
 
-    public String getCssClassPrefixCell()
-    {
+    public String getCssClassPrefixCell() {
         return cssClassPrefixCell;
     }
 
-    public String getCssClassPrefixDiv()
-    {
+    public String getCssClassPrefixDiv() {
         return cssClassPrefixDiv;
     }
 
-    public String getCssClassPrefixRow()
-    {
+    public String getCssClassPrefixRow() {
         return cssClassPrefixRow;
     }
 
-    public String getCssClassPrefixTable()
-    {
+    public String getCssClassPrefixTable() {
         return cssClassPrefixTable;
     }
 
-    public Document getDocument()
-    {
+    public Document getDocument() {
         return htmlDocumentFacade.getDocument();
     }
 
-    protected String getStyleClassName( HSSFWorkbook workbook,
-            HSSFCellStyle cellStyle ) {
-        final Short cellStyleKey = Short.valueOf( cellStyle.getIndex() );
+    protected String getStyleClassName(HSSFWorkbook workbook,
+        HSSFCellStyle cellStyle) {
+        final Short cellStyleKey = Short.valueOf(cellStyle.getIndex());
 
-        String knownClass = excelStyleToClass.get( cellStyleKey );
-        if ( knownClass != null )
+        String knownClass = excelStyleToClass.get(cellStyleKey);
+        if (knownClass != null) {
             return knownClass;
+        }
 
-        String cssStyle = buildStyle( workbook, cellStyle );
+        String cssStyle = buildStyle(workbook, cellStyle);
         String cssClass = htmlDocumentFacade.getOrCreateCssClass(
-                cssClassPrefixCell, cssStyle );
-        excelStyleToClass.put( cellStyleKey, cssClass );
+            cssClassPrefixCell, cssStyle);
+        excelStyleToClass.put(cellStyleKey, cssClass);
         return cssClass;
     }
 
-    public boolean isUseDivsToSpan()
-    {
+    public boolean isUseDivsToSpan() {
         return useDivsToSpan;
     }
 
-    protected boolean processCell( HSSFCell cell, Element tableCellElement,
-            int normalWidthPx, int maxSpannedWidthPx, float normalHeightPt ) {
+    protected boolean processCell(HSSFCell cell, Element tableCellElement,
+        int normalWidthPx, int maxSpannedWidthPx, float normalHeightPt) {
         final HSSFCellStyle cellStyle = cell.getCellStyle();
 
         String value;
-        switch ( cell.getCellType() ) {
-        case STRING:
-            // XXX: enrich
-            value = cell.getRichStringCellValue().getString();
-            break;
-        case FORMULA:
-            switch ( cell.getCachedFormulaResultType() ) {
+        switch (cell.getCellType()) {
             case STRING:
-                HSSFRichTextString str = cell.getRichStringCellValue();
-                if ( str != null && str.length() > 0 )
-                {
-                    value = ( str.toString() );
-                }
-                else
-                {
-                    value = AbstractExcelUtils.EMPTY;
+                // XXX: enrich
+                value = cell.getRichStringCellValue().getString();
+                break;
+            case FORMULA:
+                switch (cell.getCachedFormulaResultType()) {
+                    case STRING:
+                        HSSFRichTextString str = cell.getRichStringCellValue();
+                        if (str != null && str.length() > 0) {
+                            value = (str.toString());
+                        } else {
+                            value = AbstractExcelUtils.EMPTY;
+                        }
+                        break;
+                    case NUMERIC:
+                        double nValue = cell.getNumericCellValue();
+                        short df = cellStyle.getDataFormat();
+                        String dfs = cellStyle.getDataFormatString();
+                        value = _formatter.formatRawCellContents(nValue, df, dfs);
+                        break;
+                    case BOOLEAN:
+                        value = String.valueOf(cell.getBooleanCellValue());
+                        break;
+                    case ERROR:
+                        value = ErrorEval.getText(cell.getErrorCellValue());
+                        break;
+                    default:
+                        LOG.atWarn().log("Unexpected cell cachedFormulaResultType ({})", cell.getCachedFormulaResultType());
+                        value = AbstractExcelUtils.EMPTY;
+                        break;
                 }
                 break;
+            case BLANK:
+                value = AbstractExcelUtils.EMPTY;
+                break;
             case NUMERIC:
-                double nValue = cell.getNumericCellValue();
-                short df = cellStyle.getDataFormat();
-                String dfs = cellStyle.getDataFormatString();
-                value = _formatter.formatRawCellContents(nValue, df, dfs);
+                value = _formatter.formatCellValue(cell);
                 break;
             case BOOLEAN:
-                value = String.valueOf( cell.getBooleanCellValue() );
+                value = String.valueOf(cell.getBooleanCellValue());
                 break;
             case ERROR:
-                value = ErrorEval.getText( cell.getErrorCellValue() );
+                value = ErrorEval.getText(cell.getErrorCellValue());
                 break;
             default:
-                LOG.atWarn().log("Unexpected cell cachedFormulaResultType ({})", cell.getCachedFormulaResultType());
-                value = AbstractExcelUtils.EMPTY;
-                break;
-            }
-            break;
-        case BLANK:
-            value = AbstractExcelUtils.EMPTY;
-            break;
-        case NUMERIC:
-            value = _formatter.formatCellValue( cell );
-            break;
-        case BOOLEAN:
-            value = String.valueOf( cell.getBooleanCellValue() );
-            break;
-        case ERROR:
-            value = ErrorEval.getText( cell.getErrorCellValue() );
-            break;
-        default:
-            LOG.atWarn().log("Unexpected cell type ({})", cell.getCellType());
-            return true;
+                LOG.atWarn().log("Unexpected cell type ({})", cell.getCellType());
+                return true;
         }
 
-        final boolean noText = AbstractExcelUtils.isEmpty( value );
+        final boolean noText = isEmpty(value);
         final boolean wrapInDivs = !noText && isUseDivsToSpan() && !cellStyle.getWrapText();
 
-        if ( cellStyle.getIndex() != 0 ) {
+        if (cellStyle.getIndex() != 0) {
             @SuppressWarnings("resource")
             HSSFWorkbook workbook = cell.getRow().getSheet().getWorkbook();
-            String mainCssClass = getStyleClassName( workbook, cellStyle );
+            String mainCssClass = getStyleClassName(workbook, cellStyle);
 
-            if ( wrapInDivs ) {
-                tableCellElement.setAttribute( "class", mainCssClass + " "
-                        + cssClassContainerCell );
+            if (wrapInDivs) {
+                tableCellElement.setAttribute("class", mainCssClass + " "
+                    + cssClassContainerCell);
             } else {
-                tableCellElement.setAttribute( "class", mainCssClass );
+                tableCellElement.setAttribute("class", mainCssClass);
             }
 
-            if ( noText ) {
+            if (noText) {
                 /*
                  * if cell style is defined (like borders, etc.) but cell text
                  * is empty, add "&nbsp;" to output, so browser won't collapse
@@ -369,216 +370,219 @@ public class ExcelToHtmlConverter extend
             }
         }
 
-        if ( isOutputLeadingSpacesAsNonBreaking() && value.startsWith( " " ) ) {
+        if (isOutputLeadingSpacesAsNonBreaking() && value.startsWith(" ")) {
             StringBuilder builder = new StringBuilder();
-            for ( int c = 0; c < value.length(); c++ )
-            {
-                if ( value.charAt( c ) != ' ' )
+            for (int c = 0; c < value.length(); c++) {
+                if (value.charAt(c) != ' ') {
                     break;
-                builder.append( '\u00a0' );
+                }
+                builder.append('\u00a0');
             }
 
-            if ( value.length() != builder.length() )
-                builder.append( value.substring( builder.length() ) );
+            if (value.length() != builder.length()) {
+                builder.append(value.substring(builder.length()));
+            }
 
             value = builder.toString();
         }
 
-        Text text = htmlDocumentFacade.createText( value );
+        Text text = htmlDocumentFacade.createText(value);
 
-        if ( wrapInDivs ) {
+        if (wrapInDivs) {
             Element outerDiv = htmlDocumentFacade.createBlock();
-            outerDiv.setAttribute( "class", this.cssClassContainerDiv );
+            outerDiv.setAttribute("class", this.cssClassContainerDiv);
 
             Element innerDiv = htmlDocumentFacade.createBlock();
             StringBuilder innerDivStyle = new StringBuilder();
-            innerDivStyle.append( "position:absolute;min-width:" );
-            innerDivStyle.append( normalWidthPx );
-            innerDivStyle.append( "px;" );
-            if ( maxSpannedWidthPx != Integer.MAX_VALUE ) {
-                innerDivStyle.append( "max-width:" );
-                innerDivStyle.append( maxSpannedWidthPx );
-                innerDivStyle.append( "px;" );
-            }
-            innerDivStyle.append( "overflow:hidden;max-height:" );
-            innerDivStyle.append( normalHeightPt );
-            innerDivStyle.append( "pt;white-space:nowrap;" );
-            ExcelToHtmlUtils.appendAlign( innerDivStyle, cellStyle.getAlignment() );
-            htmlDocumentFacade.addStyleClass( outerDiv, cssClassPrefixDiv,
-                    innerDivStyle.toString() );
-
-            innerDiv.appendChild( text );
-            outerDiv.appendChild( innerDiv );
-            tableCellElement.appendChild( outerDiv );
+            innerDivStyle.append("position:absolute;min-width:");
+            innerDivStyle.append(normalWidthPx);
+            innerDivStyle.append("px;");
+            if (maxSpannedWidthPx != Integer.MAX_VALUE) {
+                innerDivStyle.append("max-width:");
+                innerDivStyle.append(maxSpannedWidthPx);
+                innerDivStyle.append("px;");
+            }
+            innerDivStyle.append("overflow:hidden;max-height:");
+            innerDivStyle.append(normalHeightPt);
+            innerDivStyle.append("pt;white-space:nowrap;");
+            appendAlign(innerDivStyle, cellStyle.getAlignment());
+            htmlDocumentFacade.addStyleClass(outerDiv, cssClassPrefixDiv,
+                innerDivStyle.toString());
+
+            innerDiv.appendChild(text);
+            outerDiv.appendChild(innerDiv);
+            tableCellElement.appendChild(outerDiv);
         } else {
-            tableCellElement.appendChild( text );
+            tableCellElement.appendChild(text);
         }
 
-        return AbstractExcelUtils.isEmpty( value ) && (cellStyle.getIndex() == 0);
+        return isEmpty(value) && (cellStyle.getIndex() == 0);
     }
 
-    protected void processColumnHeaders( HSSFSheet sheet, int maxSheetColumns,
-            Element table ) {
+    protected void processColumnHeaders(HSSFSheet sheet, int maxSheetColumns,
+        Element table) {
         Element tableHeader = htmlDocumentFacade.createTableHeader();
-        table.appendChild( tableHeader );
+        table.appendChild(tableHeader);
 
         Element tr = htmlDocumentFacade.createTableRow();
 
-        if ( isOutputRowNumbers() ) {
+        if (isOutputRowNumbers()) {
             // empty row at left-top corner
-            tr.appendChild( htmlDocumentFacade.createTableHeaderCell() );
+            tr.appendChild(htmlDocumentFacade.createTableHeaderCell());
         }
 
-        for ( int c = 0; c < maxSheetColumns; c++ ) {
-            if ( !isOutputHiddenColumns() && sheet.isColumnHidden( c ) )
+        for (int c = 0; c < maxSheetColumns; c++) {
+            if (!isOutputHiddenColumns() && sheet.isColumnHidden(c)) {
                 continue;
+            }
 
             Element th = htmlDocumentFacade.createTableHeaderCell();
-            String text = getColumnName( c );
-            th.appendChild( htmlDocumentFacade.createText( text ) );
-            tr.appendChild( th );
+            String text = getColumnName(c);
+            th.appendChild(htmlDocumentFacade.createText(text));
+            tr.appendChild(th);
         }
-        tableHeader.appendChild( tr );
+        tableHeader.appendChild(tr);
     }
 
     /**
      * Creates COLGROUP element with width specified for all columns. (Except
      * first if <tt>{@link #isOutputRowNumbers()}==true</tt>)
      */
-    protected void processColumnWidths( HSSFSheet sheet, int maxSheetColumns,
-            Element table ) {
+    protected void processColumnWidths(HSSFSheet sheet, int maxSheetColumns,
+        Element table) {
         // draw COLS after we know max column number
         Element columnGroup = htmlDocumentFacade.createTableColumnGroup();
-        if ( isOutputRowNumbers() )
-        {
-            columnGroup.appendChild( htmlDocumentFacade.createTableColumn() );
-        }
-        for ( int c = 0; c < maxSheetColumns; c++ )
-        {
-            if ( !isOutputHiddenColumns() && sheet.isColumnHidden( c ) )
+        if (isOutputRowNumbers()) {
+            columnGroup.appendChild(htmlDocumentFacade.createTableColumn());
+        }
+        for (int c = 0; c < maxSheetColumns; c++) {
+            if (!isOutputHiddenColumns() && sheet.isColumnHidden(c)) {
                 continue;
+            }
 
             Element col = htmlDocumentFacade.createTableColumn();
-            col.setAttribute( "width",
-                    String.valueOf( getColumnWidth( sheet, c ) ) );
-            columnGroup.appendChild( col );
+            col.setAttribute("width",
+                String.valueOf(getColumnWidth(sheet, c)));
+            columnGroup.appendChild(col);
         }
-        table.appendChild( columnGroup );
+        table.appendChild(columnGroup);
     }
 
-    protected void processDocumentInformation(SummaryInformation summaryInformation ) {
-        if ( AbstractExcelUtils.isNotEmpty( summaryInformation.getTitle() ) )
-            htmlDocumentFacade.setTitle( summaryInformation.getTitle() );
+    protected void processDocumentInformation(SummaryInformation summaryInformation) {
+        if (isNotEmpty(summaryInformation.getTitle())) {
+            htmlDocumentFacade.setTitle(summaryInformation.getTitle());
+        }
 
-        if ( AbstractExcelUtils.isNotEmpty( summaryInformation.getAuthor() ) )
-            htmlDocumentFacade.addAuthor( summaryInformation.getAuthor() );
+        if (isNotEmpty(summaryInformation.getAuthor())) {
+            htmlDocumentFacade.addAuthor(summaryInformation.getAuthor());
+        }
 
-        if ( AbstractExcelUtils.isNotEmpty( summaryInformation.getKeywords() ) )
-            htmlDocumentFacade.addKeywords( summaryInformation.getKeywords() );
+        if (isNotEmpty(summaryInformation.getKeywords())) {
+            htmlDocumentFacade.addKeywords(summaryInformation.getKeywords());
+        }
 
-        if ( AbstractExcelUtils.isNotEmpty( summaryInformation.getComments() ) )
+        if (isNotEmpty(summaryInformation.getComments())) {
             htmlDocumentFacade
-                    .addDescription( summaryInformation.getComments() );
+                .addDescription(summaryInformation.getComments());
+        }
     }
 
     /**
      * @return maximum 1-base index of column that were rendered, zero if none
      */
-    protected int processRow( CellRangeAddress[][] mergedRanges, HSSFRow row,
-            Element tableRowElement ) {
+    protected int processRow(CellRangeAddress[][] mergedRanges, HSSFRow row,
+        Element tableRowElement) {
         final HSSFSheet sheet = row.getSheet();
         final short maxColIx = row.getLastCellNum();
-        if ( maxColIx <= 0 )
+        if (maxColIx <= 0) {
             return 0;
+        }
 
         final List<Element> emptyCells = new ArrayList<>(maxColIx);
 
-        if ( isOutputRowNumbers() )
-        {
+        if (isOutputRowNumbers()) {
             Element tableRowNumberCellElement = htmlDocumentFacade
-                    .createTableHeaderCell();
-            processRowNumber( row, tableRowNumberCellElement );
-            emptyCells.add( tableRowNumberCellElement );
+                .createTableHeaderCell();
+            processRowNumber(row, tableRowNumberCellElement);
+            emptyCells.add(tableRowNumberCellElement);
         }
 
         int maxRenderedColumn = 0;
-        for ( int colIx = 0; colIx < maxColIx; colIx++ )
-        {
-            if ( !isOutputHiddenColumns() && sheet.isColumnHidden( colIx ) )
+        for (int colIx = 0; colIx < maxColIx; colIx++) {
+            if (!isOutputHiddenColumns() && sheet.isColumnHidden(colIx)) {
                 continue;
+            }
 
-            CellRangeAddress range = AbstractExcelUtils.getMergedRange(
-                    mergedRanges, row.getRowNum(), colIx );
+            CellRangeAddress range = getMergedRange(mergedRanges, row.getRowNum(), colIx);
 
-            if ( range != null
-                    && ( range.getFirstColumn() != colIx || range.getFirstRow() != row
-                            .getRowNum() ) )
+            if (range != null
+                && (range.getFirstColumn() != colIx || range.getFirstRow() != row
+                .getRowNum())) {
                 continue;
+            }
 
-            HSSFCell cell = row.getCell( colIx );
+            HSSFCell cell = row.getCell(colIx);
 
             int divWidthPx = 0;
-            if ( isUseDivsToSpan() )
-            {
-                divWidthPx = getColumnWidth( sheet, colIx );
+            if (isUseDivsToSpan()) {
+                divWidthPx = getColumnWidth(sheet, colIx);
 
                 boolean hasBreaks = false;
-                for ( int nextColumnIndex = colIx + 1; nextColumnIndex < maxColIx; nextColumnIndex++ )
-                {
-                    if ( !isOutputHiddenColumns()
-                            && sheet.isColumnHidden( nextColumnIndex ) )
+                for (int nextColumnIndex = colIx + 1; nextColumnIndex < maxColIx; nextColumnIndex++) {
+                    if (!isOutputHiddenColumns()
+                        && sheet.isColumnHidden(nextColumnIndex)) {
                         continue;
+                    }
 
-                    if ( row.getCell( nextColumnIndex ) != null
-                            && !isTextEmpty( row.getCell( nextColumnIndex ) ) )
-                    {
+                    if (row.getCell(nextColumnIndex) != null
+                        && !isTextEmpty(row.getCell(nextColumnIndex))) {
                         hasBreaks = true;
                         break;
                     }
 
-                    divWidthPx += getColumnWidth( sheet, nextColumnIndex );
+                    divWidthPx += getColumnWidth(sheet, nextColumnIndex);
                 }
 
-                if ( !hasBreaks )
+                if (!hasBreaks) {
                     divWidthPx = Integer.MAX_VALUE;
+                }
             }
 
             Element tableCellElement = htmlDocumentFacade.createTableCell();
 
-            if ( range != null )
-            {
-                if ( range.getFirstColumn() != range.getLastColumn() )
+            if (range != null) {
+                if (range.getFirstColumn() != range.getLastColumn()) {
                     tableCellElement.setAttribute(
-                            "colspan",
-                            String.valueOf( range.getLastColumn()
-                                    - range.getFirstColumn() + 1 ) );
-                if ( range.getFirstRow() != range.getLastRow() )
+                        "colspan",
+                        String.valueOf(range.getLastColumn()
+                            - range.getFirstColumn() + 1));
+                }
+                if (range.getFirstRow() != range.getLastRow()) {
                     tableCellElement.setAttribute(
-                            "rowspan",
-                            String.valueOf( range.getLastRow()
-                                    - range.getFirstRow() + 1 ) );
+                        "rowspan",
+                        String.valueOf(range.getLastRow()
+                            - range.getFirstRow() + 1));
+                }
             }
 
             boolean emptyCell;
-            if ( cell != null )
-            {
-                emptyCell = processCell( cell, tableCellElement,
-                        getColumnWidth( sheet, colIx ), divWidthPx,
-                        row.getHeight() / 20f );
+            if (cell != null) {
+                emptyCell = processCell(cell, tableCellElement,
+                    getColumnWidth(sheet, colIx), divWidthPx,
+                    row.getHeight() / 20f);
             } else {
                 emptyCell = true;
             }
 
-            if ( emptyCell ) {
-                emptyCells.add( tableCellElement );
+            if (emptyCell) {
+                emptyCells.add(tableCellElement);
             } else {
-                for ( Element emptyCellElement : emptyCells )
-                {
-                    tableRowElement.appendChild( emptyCellElement );
+                for (Element emptyCellElement : emptyCells) {
+                    tableRowElement.appendChild(emptyCellElement);
                 }
                 emptyCells.clear();
 
-                tableRowElement.appendChild( tableCellElement );
+                tableRowElement.appendChild(tableCellElement);
                 maxRenderedColumn = colIx;
             }
         }
@@ -586,122 +590,120 @@ public class ExcelToHtmlConverter extend
         return maxRenderedColumn + 1;
     }
 
-    protected void processRowNumber( HSSFRow row,
-            Element tableRowNumberCellElement ) {
-        tableRowNumberCellElement.setAttribute( "class", "rownumber" );
-        Text text = htmlDocumentFacade.createText( getRowName( row ) );
-        tableRowNumberCellElement.appendChild( text );
+    protected void processRowNumber(HSSFRow row,
+        Element tableRowNumberCellElement) {
+        tableRowNumberCellElement.setAttribute("class", "rownumber");
+        Text text = htmlDocumentFacade.createText(getRowName(row));
+        tableRowNumberCellElement.appendChild(text);
     }
 
-    protected void processSheet( HSSFSheet sheet ) {
-        processSheetHeader( htmlDocumentFacade.getBody(), sheet );
+    protected void processSheet(HSSFSheet sheet) {
+        processSheetHeader(htmlDocumentFacade.getBody(), sheet);
 
         final int physicalNumberOfRows = sheet.getPhysicalNumberOfRows();
-        if ( physicalNumberOfRows <= 0 )
+        if (physicalNumberOfRows <= 0) {
             return;
+        }
 
         Element table = htmlDocumentFacade.createTable();
-        htmlDocumentFacade.addStyleClass( table, cssClassPrefixTable,
-                "border-collapse:collapse;border-spacing:0;" );
+        htmlDocumentFacade.addStyleClass(table, cssClassPrefixTable,
+            "border-collapse:collapse;border-spacing:0;");
 
         Element tableBody = htmlDocumentFacade.createTableBody();
 
-        final CellRangeAddress[][] mergedRanges = ExcelToHtmlUtils
-                .buildMergedRangesMap( sheet );
+        final CellRangeAddress[][] mergedRanges = buildMergedRangesMap(sheet);
 
         final List<Element> emptyRowElements = new ArrayList<>(
-                physicalNumberOfRows);
+            physicalNumberOfRows);
         int maxSheetColumns = 1;
-        for ( int r = sheet.getFirstRowNum(); r <= sheet.getLastRowNum(); r++ ) {
-            HSSFRow row = sheet.getRow( r );
+        for (int r = sheet.getFirstRowNum(); r <= sheet.getLastRowNum(); r++) {
+            HSSFRow row = sheet.getRow(r);
 
-            if ( row == null )
+            if (row == null) {
                 continue;
+            }
 
-            if ( !isOutputHiddenRows() && row.getZeroHeight() )
+            if (!isOutputHiddenRows() && row.getZeroHeight()) {
                 continue;
+            }
 
             Element tableRowElement = htmlDocumentFacade.createTableRow();
-            htmlDocumentFacade.addStyleClass( tableRowElement,
-                    cssClassPrefixRow, "height:" + ( row.getHeight() / 20f )
-                            + "pt;" );
+            htmlDocumentFacade.addStyleClass(tableRowElement,
+                cssClassPrefixRow, "height:" + (row.getHeight() / 20f)
+                    + "pt;");
 
-            int maxRowColumnNumber = processRow( mergedRanges, row,
-                    tableRowElement );
+            int maxRowColumnNumber = processRow(mergedRanges, row,
+                tableRowElement);
 
-            if ( maxRowColumnNumber == 0 ) {
-                emptyRowElements.add( tableRowElement );
+            if (maxRowColumnNumber == 0) {
+                emptyRowElements.add(tableRowElement);
             } else {
-                if ( !emptyRowElements.isEmpty() ) {
-                    for ( Element emptyRowElement : emptyRowElements ) {
-                        tableBody.appendChild( emptyRowElement );
+                if (!emptyRowElements.isEmpty()) {
+                    for (Element emptyRowElement : emptyRowElements) {
+                        tableBody.appendChild(emptyRowElement);
                     }
                     emptyRowElements.clear();
                 }
 
-                tableBody.appendChild( tableRowElement );
+                tableBody.appendChild(tableRowElement);
             }
-            maxSheetColumns = Math.max( maxSheetColumns, maxRowColumnNumber );
+            maxSheetColumns = Math.max(maxSheetColumns, maxRowColumnNumber);
         }
 
-        processColumnWidths( sheet, maxSheetColumns, table );
+        processColumnWidths(sheet, maxSheetColumns, table);
 
-        if ( isOutputColumnHeaders() ) {
-            processColumnHeaders( sheet, maxSheetColumns, table );
+        if (isOutputColumnHeaders()) {
+            processColumnHeaders(sheet, maxSheetColumns, table);
         }
 
-        table.appendChild( tableBody );
+        table.appendChild(tableBody);
 
-        htmlDocumentFacade.getBody().appendChild( table );
+        htmlDocumentFacade.getBody().appendChild(table);
     }
 
-    protected void processSheetHeader( Element htmlBody, HSSFSheet sheet ) {
+    protected void processSheetHeader(Element htmlBody, HSSFSheet sheet) {
         Element h2 = htmlDocumentFacade.createHeader2();
-        h2.appendChild( htmlDocumentFacade.createText( sheet.getSheetName() ) );
-        htmlBody.appendChild( h2 );
+        h2.appendChild(htmlDocumentFacade.createText(sheet.getSheetName()));
+        htmlBody.appendChild(h2);
     }
 
-    public void processWorkbook( HSSFWorkbook workbook ) {
+    public void processWorkbook(HSSFWorkbook workbook) {
         final SummaryInformation summaryInformation = workbook
-                .getSummaryInformation();
-        if ( summaryInformation != null ) {
-            processDocumentInformation( summaryInformation );
+            .getSummaryInformation();
+        if (summaryInformation != null) {
+            processDocumentInformation(summaryInformation);
         }
 
-        if ( isUseDivsToSpan() ) {
+        if (isUseDivsToSpan()) {
             // prepare CSS classes for later usage
             this.cssClassContainerCell = htmlDocumentFacade
-                    .getOrCreateCssClass( cssClassPrefixCell,
-                            "padding:0;margin:0;align:left;vertical-align:top;" );
+                .getOrCreateCssClass(cssClassPrefixCell,
+                    "padding:0;margin:0;align:left;vertical-align:top;");
             this.cssClassContainerDiv = htmlDocumentFacade.getOrCreateCssClass(
-                    cssClassPrefixDiv, "position:relative;" );
+                cssClassPrefixDiv, "position:relative;");
         }
 
-        for ( int s = 0; s < workbook.getNumberOfSheets(); s++ ) {
-            HSSFSheet sheet = workbook.getSheetAt( s );
-            processSheet( sheet );
+        for (int s = 0; s < workbook.getNumberOfSheets(); s++) {
+            HSSFSheet sheet = workbook.getSheetAt(s);
+            processSheet(sheet);
         }
 
         htmlDocumentFacade.updateStylesheet();
     }
 
-    public void setCssClassPrefixCell( String cssClassPrefixCell )
-    {
+    public void setCssClassPrefixCell(String cssClassPrefixCell) {
         this.cssClassPrefixCell = cssClassPrefixCell;
     }
 
-    public void setCssClassPrefixDiv( String cssClassPrefixDiv )
-    {
+    public void setCssClassPrefixDiv(String cssClassPrefixDiv) {
         this.cssClassPrefixDiv = cssClassPrefixDiv;
     }
 
-    public void setCssClassPrefixRow( String cssClassPrefixRow )
-    {
+    public void setCssClassPrefixRow(String cssClassPrefixRow) {
         this.cssClassPrefixRow = cssClassPrefixRow;
     }
 
-    public void setCssClassPrefixTable( String cssClassPrefixTable )
-    {
+    public void setCssClassPrefixTable(String cssClassPrefixTable) {
         this.cssClassPrefixTable = cssClassPrefixTable;
     }
 
@@ -713,8 +715,7 @@ public class ExcelToHtmlConverter extend
      * with INDENT=YES option, because line breaks will make additional
      * (unwanted) changes
      */
-    public void setUseDivsToSpan( boolean useDivsToSpan )
-    {
+    public void setUseDivsToSpan(boolean useDivsToSpan) {
         this.useDivsToSpan = useDivsToSpan;
     }
 }

Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwmf/record/HwmfBitmapDib.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwmf/record/HwmfBitmapDib.java?rev=1888746&r1=1888745&r2=1888746&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwmf/record/HwmfBitmapDib.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwmf/record/HwmfBitmapDib.java Tue Apr 13 21:37:33 2021
@@ -58,7 +58,7 @@ public class HwmfBitmapDib implements Ge
 
     public enum BitCount {
         /**
-         * The image SHOULD be in either JPEG or PNG format. <6> Neither of these formats includes
+         * The image SHOULD be in either JPEG or PNG format. Neither of these formats includes
          *  a color table, so this value specifies that no color table is present. See [JFIF] and [RFC2083]
          *  for more information concerning JPEG and PNG compression formats.
          */
@@ -257,7 +257,7 @@ public class HwmfBitmapDib implements Ge
             headerCompression == Compression.BI_RGB ||
             headerCompression == Compression.BI_BITFIELDS ||
             headerCompression == Compression.BI_CMYK) {
-            int fileSize = (int)Math.min(introSize+bodySize,recordSize);
+            int fileSize = Math.min(introSize+bodySize,recordSize);
             imageData = IOUtils.safelyAllocate(fileSize, MAX_RECORD_LENGTH);
             leis.readFully(imageData, 0, introSize);
             leis.skipFully(recordSize-fileSize);
@@ -271,10 +271,10 @@ public class HwmfBitmapDib implements Ge
         }
     }
 
-    protected int readHeader(LittleEndianInputStream leis) throws IOException {
+    protected int readHeader(LittleEndianInputStream leis) {
         int size = 0;
 
-        /**
+        /*
          * DIBHeaderInfo (variable): Either a BitmapCoreHeader Object or a
          * BitmapInfoHeader Object that specifies information about the image.
          *

Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/extractor/WordExtractor.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/extractor/WordExtractor.java?rev=1888746&r1=1888745&r2=1888746&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/extractor/WordExtractor.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/extractor/WordExtractor.java Tue Apr 13 21:37:33 2021
@@ -205,7 +205,7 @@ public final class WordExtractor impleme
 
     /**
      * Grab the text out of the text pieces. Might also include various bits of
-     * crud, but will work in cases where the text piece -> paragraph mapping is
+     * crud, but will work in cases where the text piece -&gt; paragraph mapping is
      * broken. Fast too.
      */
     public String getTextFromPieces() {

Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/CharIndexTranslator.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/CharIndexTranslator.java?rev=1888746&r1=1888745&r2=1888746&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/CharIndexTranslator.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/CharIndexTranslator.java Tue Apr 13 21:37:33 2021
@@ -23,7 +23,7 @@ import org.apache.poi.util.Internal;
 public interface CharIndexTranslator {
     /**
      * Calculates the byte index of the given char index.
-     * 
+     *
      * @param charPos
      *            The char position
      * @return The byte index
@@ -32,7 +32,7 @@ public interface CharIndexTranslator {
 
     /**
      * Finds character ranges that includes specified byte range.
-     * 
+     *
      * @param startBytePosInclusive
      *            start byte range
      * @param endBytePosExclusive
@@ -43,14 +43,14 @@ public interface CharIndexTranslator {
 
     /**
      * Check if index is in table
-     * 
+     *
      * @param bytePos
      * @return true if index in table, false if not
      */
     boolean isIndexInTable(int bytePos);
 
     /**
-     * Return first index >= bytePos that is in table
+     * Return first index &gt;= bytePos that is in table
      *
      * @param bytePos
      * @return  first index greater or equal to bytePos that is in table
@@ -58,7 +58,7 @@ public interface CharIndexTranslator {
     int lookIndexForward(int bytePos);
 
     /**
-     * Return last index <= bytePos that is in table
+     * Return last index &lt;= bytePos that is in table
      *
      * @param bytePos
      * @return last index less of equal to bytePos that is in table

Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/ListTables.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/ListTables.java?rev=1888746&r1=1888745&r2=1888746&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/ListTables.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/ListTables.java Tue Apr 13 21:37:33 2021
@@ -137,7 +137,7 @@ public final class ListTables
 
     /**
      * Get the ListLevel for a given lsid and level
-     * @return ListLevel if found, or <code>null</code> if ListData can't be found or if level is > that available
+     * @return ListLevel if found, or {@code null} if ListData can't be found or if level is &gt; that available
      */
   public ListLevel getLevel(int lsid, int level)
   {

Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/PicturesTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/PicturesTable.java?rev=1888746&r1=1888745&r2=1888746&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/PicturesTable.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/PicturesTable.java Tue Apr 13 21:37:33 2021
@@ -17,6 +17,8 @@
 
 package org.apache.poi.hwpf.model;
 
+import static org.apache.logging.log4j.util.Unbox.box;
+
 import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.List;
@@ -36,13 +38,11 @@ import org.apache.poi.hwpf.usermodel.Ran
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 
-import static org.apache.logging.log4j.util.Unbox.box;
-
 /**
- * Holds information about all pictures embedded in Word Document either via "Insert -> Picture -> From File" or via
+ * Holds information about all pictures embedded in Word Document either via "Insert -&gt; Picture -&gt; From File" or via
  * clipboard. Responsible for images extraction and determining whether some document's piece contains embedded image.
  * Analyzes raw data bytestream 'Data' (where Word stores all embedded objects) provided by HWPFDocument.
- *
+ * <p>
  * Word stores images as is within so called "Data stream" - the stream within a Word docfile containing various data
  * that hang off of characters in the main stream. For example, binary data describing in-line pictures and/or
  * formfields an also embedded objects-native data. Word picture structures are concatenated one after the other in
@@ -60,194 +60,171 @@ public final class PicturesTable {
     private static final Logger LOG = LogManager.getLogger(PicturesTable.class);
 
     static final int TYPE_IMAGE = 0x08;
-  static final int TYPE_IMAGE_WORD2000 = 0x00;
-  static final int TYPE_IMAGE_PASTED_FROM_CLIPBOARD = 0xA;
-  static final int TYPE_IMAGE_PASTED_FROM_CLIPBOARD_WORD2000 = 0x2;
-  static final int TYPE_HORIZONTAL_LINE = 0xE;
-  static final int BLOCK_TYPE_OFFSET = 0xE;
-  static final int MM_MODE_TYPE_OFFSET = 0x6;
-
-  private HWPFDocument _document;
-  private byte[] _dataStream;
-  private byte[] _mainStream;
-  @Deprecated
-  private FSPATable _fspa;
-  @Deprecated
-  private OfficeArtContent _dgg;
-
-  /** @link dependency
-   * @stereotype instantiate*/
-  /*# Picture lnkPicture; */
-
-  /**
-   *
-   * @param _document
-   * @param _dataStream
-   */
-  @Deprecated
-  public PicturesTable(HWPFDocument _document, byte[] _dataStream, byte[] _mainStream, FSPATable fspa, OfficeArtContent dgg)
-  {
-    this._document = _document;
-    this._dataStream = _dataStream;
-    this._mainStream = _mainStream;
-    this._fspa = fspa;
-    this._dgg = dgg;
-  }
-
-    public PicturesTable( HWPFDocument _document, byte[] _dataStream,
-            byte[] _mainStream )
-    {
+    static final int TYPE_IMAGE_WORD2000 = 0x00;
+    static final int TYPE_IMAGE_PASTED_FROM_CLIPBOARD = 0xA;
+    static final int TYPE_IMAGE_PASTED_FROM_CLIPBOARD_WORD2000 = 0x2;
+    static final int TYPE_HORIZONTAL_LINE = 0xE;
+    static final int BLOCK_TYPE_OFFSET = 0xE;
+    static final int MM_MODE_TYPE_OFFSET = 0x6;
+
+    private final HWPFDocument _document;
+    private final byte[] _dataStream;
+    private final byte[] _mainStream;
+    @Deprecated
+    private FSPATable _fspa;
+    @Deprecated
+    private OfficeArtContent _dgg;
+
+    @Deprecated
+    public PicturesTable(HWPFDocument _document, byte[] _dataStream, byte[] _mainStream, FSPATable fspa, OfficeArtContent dgg) {
         this._document = _document;
         this._dataStream = _dataStream;
         this._mainStream = _mainStream;
+        this._fspa = fspa;
+        this._dgg = dgg;
     }
 
-  /**
-   * determines whether specified CharacterRun contains reference to a picture
-   * @param run
-   */
-  public boolean hasPicture(CharacterRun run) {
-    if (run==null) {
+    public PicturesTable(HWPFDocument _document, byte[] _dataStream,
+        byte[] _mainStream) {
+        this._document = _document;
+        this._dataStream = _dataStream;
+        this._mainStream = _mainStream;
+    }
+
+    /**
+     * determines whether specified CharacterRun contains reference to a picture
+     */
+    public boolean hasPicture(CharacterRun run) {
+        if (run == null) {
+            return false;
+        }
+
+        if (run.isSpecialCharacter() && !run.isObj() && !run.isOle2() && !run.isData()) {
+            // Image should be in it's own run, or in a run with the end-of-special marker
+            if ("\u0001".equals(run.text()) || "\u0001\u0015".equals(run.text())) {
+                return isBlockContainsImage(run.getPicOffset());
+            }
+        }
         return false;
     }
 
-    if (run.isSpecialCharacter() && !run.isObj() && !run.isOle2() && !run.isData()) {
-       // Image should be in it's own run, or in a run with the end-of-special marker
-       if("\u0001".equals(run.text()) || "\u0001\u0015".equals(run.text())) {
-          return isBlockContainsImage(run.getPicOffset());
-       }
-    }
-    return false;
-  }
-
-  public boolean hasEscherPicture(CharacterRun run) {
-    if (run.isSpecialCharacter() && !run.isObj() && !run.isOle2() && !run.isData() && run.text().startsWith("\u0008")) {
-      return true;
-    }
-    return false;
-  }
-
-  /**
-   * determines whether specified CharacterRun contains reference to a picture
-   * @param run
-  */
-  public boolean hasHorizontalLine(CharacterRun run) {
-    if (run.isSpecialCharacter() && "\u0001".equals(run.text())) {
-      return isBlockContainsHorizontalLine(run.getPicOffset());
-    }
-    return false;
-  }
-
-  private boolean isPictureRecognized(short blockType, short mappingModeOfMETAFILEPICT) {
-    return (blockType == TYPE_IMAGE || blockType == TYPE_IMAGE_PASTED_FROM_CLIPBOARD || (blockType==TYPE_IMAGE_WORD2000 && mappingModeOfMETAFILEPICT==0x64) || (blockType==TYPE_IMAGE_PASTED_FROM_CLIPBOARD_WORD2000 && mappingModeOfMETAFILEPICT==0x64));
-  }
-
-  private static short getBlockType(byte[] dataStream, int pictOffset) {
-    return LittleEndian.getShort(dataStream, pictOffset + BLOCK_TYPE_OFFSET);
-  }
-
-  private static short getMmMode(byte[] dataStream, int pictOffset) {
-    return LittleEndian.getShort(dataStream, pictOffset + MM_MODE_TYPE_OFFSET);
-  }
-
-  /**
-   * Returns picture object tied to specified CharacterRun
-   * @param run
-   * @param fillBytes if true, Picture will be returned with filled byte array that represent picture's contents. If you don't want
-   * to have that byte array in memory but only write picture's contents to stream, pass false and then use Picture.writeImageContent
-   * @see Picture#writeImageContent(OutputStream)
-   * @return a Picture object if picture exists for specified CharacterRun, null otherwise. PicturesTable.hasPicture is used to determine this.
-   * @see #hasPicture(CharacterRun)
-   */
-  public Picture extractPicture(CharacterRun run, boolean fillBytes) {
-    if (hasPicture(run)) {
-      return new Picture(run.getPicOffset(), _dataStream, fillBytes);
+    public boolean hasEscherPicture(CharacterRun run) {
+        return run.isSpecialCharacter() && !run.isObj() && !run.isOle2() && !run.isData() && run.text().startsWith("\u0008");
     }
-    return null;
-  }
 
-  /**
+    /**
+     * determines whether specified CharacterRun contains reference to a picture
+     */
+    public boolean hasHorizontalLine(CharacterRun run) {
+        if (run.isSpecialCharacter() && "\u0001".equals(run.text())) {
+            return isBlockContainsHorizontalLine(run.getPicOffset());
+        }
+        return false;
+    }
+
+    private boolean isPictureRecognized(short blockType, short mappingModeOfMETAFILEPICT) {
+        return blockType == TYPE_IMAGE
+            || blockType == TYPE_IMAGE_PASTED_FROM_CLIPBOARD
+            || blockType == TYPE_IMAGE_WORD2000 && mappingModeOfMETAFILEPICT == 0x64
+            || blockType == TYPE_IMAGE_PASTED_FROM_CLIPBOARD_WORD2000 && mappingModeOfMETAFILEPICT == 0x64;
+    }
+
+    private static short getBlockType(byte[] dataStream, int pictOffset) {
+        return LittleEndian.getShort(dataStream, pictOffset + BLOCK_TYPE_OFFSET);
+    }
+
+    private static short getMmMode(byte[] dataStream, int pictOffset) {
+        return LittleEndian.getShort(dataStream, pictOffset + MM_MODE_TYPE_OFFSET);
+    }
+
+    /**
+     * Returns picture object tied to specified CharacterRun
+     *
+     * @param fillBytes if true, Picture will be returned with filled byte array that represent picture's contents. If you don't want
+     *                  to have that byte array in memory but only write picture's contents to stream, pass false and then use Picture.writeImageContent
+     * @return a Picture object if picture exists for specified CharacterRun, null otherwise. PicturesTable.hasPicture is used to determine this.
+     * @see Picture#writeImageContent(OutputStream)
+     * @see #hasPicture(CharacterRun)
+     */
+    public Picture extractPicture(CharacterRun run, boolean fillBytes) {
+        if (hasPicture(run)) {
+            return new Picture(run.getPicOffset(), _dataStream, fillBytes);
+        }
+        return null;
+    }
+
+    /**
      * Performs a search for pictures in the given list of escher records.
      *
      * @param escherRecords the escher records.
-     * @param pictures the list to populate with the pictures.
+     * @param pictures      the list to populate with the pictures.
      */
-    private void searchForPictures(List<EscherRecord> escherRecords, List<Picture> pictures)
-    {
-       for(EscherRecord escherRecord : escherRecords) {
-          if (escherRecord instanceof EscherBSERecord) {
-              EscherBSERecord bse = (EscherBSERecord) escherRecord;
-              EscherBlipRecord blip = bse.getBlipRecord();
-              if (blip != null)
-              {
-                  pictures.add(new Picture(blip));
-              }
-                else if ( bse.getOffset() > 0 )
-                {
-                    try
-                    {
+    private void searchForPictures(List<EscherRecord> escherRecords, List<Picture> pictures) {
+        for (EscherRecord escherRecord : escherRecords) {
+            if (escherRecord instanceof EscherBSERecord) {
+                EscherBSERecord bse = (EscherBSERecord) escherRecord;
+                EscherBlipRecord blip = bse.getBlipRecord();
+                if (blip != null) {
+                    pictures.add(new Picture(blip));
+                } else if (bse.getOffset() > 0) {
+                    try {
                         // Blip stored in delay stream, which in a word doc, is
                         // the main stream
                         EscherRecordFactory recordFactory = new DefaultEscherRecordFactory();
                         EscherRecord record = recordFactory.createRecord(
-                                _mainStream, bse.getOffset() );
+                            _mainStream, bse.getOffset());
 
-                        if ( record instanceof EscherBlipRecord )
-                        {
-                            record.fillFields( _mainStream, bse.getOffset(),
-                                    recordFactory );
+                        if (record instanceof EscherBlipRecord) {
+                            record.fillFields(_mainStream, bse.getOffset(),
+                                recordFactory);
                             blip = (EscherBlipRecord) record;
-                            pictures.add( new Picture( blip ) );
+                            pictures.add(new Picture(blip));
                         }
-                    }
-                    catch ( Exception exc )
-                    {
+                    } catch (Exception exc) {
                         LOG.atWarn().withThrowable(exc).log("Unable to load picture from BLIP record at offset #{}", box(bse.getOffset()));
                     }
                 }
-          }
-       }
+            }
+        }
+    }
+
+    /**
+     * Not all documents have all the images concatenated in the data stream
+     * although MS claims so. The best approach is to scan all character runs.
+     *
+     * @return a list of Picture objects found in current document
+     */
+    public List<Picture> getAllPictures() {
+        ArrayList<Picture> pictures = new ArrayList<>();
+
+        Range range = _document.getOverallRange();
+        for (int i = 0; i < range.numCharacterRuns(); i++) {
+            CharacterRun run = range.getCharacterRun(i);
+
+            if (run == null) {
+                continue;
+            }
+
+            Picture picture = extractPicture(run, false);
+            if (picture != null) {
+                pictures.add(picture);
+            }
+        }
+
+        EscherContainerRecord bStore = _dgg.getBStoreContainer();
+        if (bStore != null) {
+            searchForPictures(bStore.getChildRecords(), pictures);
+        }
+
+        return pictures;
     }
 
-  /**
-   * Not all documents have all the images concatenated in the data stream
-   * although MS claims so. The best approach is to scan all character runs.
-   *
-   * @return a list of Picture objects found in current document
-   */
-  public List<Picture> getAllPictures() {
-    ArrayList<Picture> pictures = new ArrayList<>();
-
-    Range range = _document.getOverallRange();
-    for (int i = 0; i < range.numCharacterRuns(); i++) {
-    	CharacterRun run = range.getCharacterRun(i);
-
-        if (run==null) {
-            continue;
-        }
-
-    	Picture picture = extractPicture(run, false);
-    	if (picture != null) {
-    		pictures.add(picture);
-    	}
-	}
-
-      EscherContainerRecord bStore = _dgg.getBStoreContainer();
-      if (bStore != null) {
-          searchForPictures(bStore.getChildRecords(), pictures);
-      }
-
-      return pictures;
-  }
-
-  private boolean isBlockContainsImage(int i)
-  {
-    return isPictureRecognized(getBlockType(_dataStream, i), getMmMode(_dataStream, i));
-  }
-
-  private boolean isBlockContainsHorizontalLine(int i)
-  {
-    return getBlockType(_dataStream, i)==TYPE_HORIZONTAL_LINE && getMmMode(_dataStream, i)==0x64;
-  }
+    private boolean isBlockContainsImage(int i) {
+        return isPictureRecognized(getBlockType(_dataStream, i), getMmMode(_dataStream, i));
+    }
+
+    private boolean isBlockContainsHorizontalLine(int i) {
+        return getBlockType(_dataStream, i) == TYPE_HORIZONTAL_LINE && getMmMode(_dataStream, i) == 0x64;
+    }
 
 }

Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/FRDAbstractType.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/FRDAbstractType.java?rev=1888746&r1=1888745&r2=1888746&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/FRDAbstractType.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/FRDAbstractType.java Tue Apr 13 21:37:33 2021
@@ -56,17 +56,13 @@ public abstract class FRDAbstractType {
 
     public String toString()
     {
-        StringBuilder builder = new StringBuilder();
-        builder.append( "[FRD]\n" );
-        builder.append( "    .nAuto                = " );
-        builder.append( " (" ).append( getNAuto() ).append( " )\n" );
-
-        builder.append( "[/FRD]\n" );
-        return builder.toString();
+        return "[FRD]\n" +
+            "    .nAuto                =  (" + getNAuto() + " )\n" +
+            "[/FRD]\n";
     }
 
     /**
-     * If > 0, the note is an automatically numbered note, otherwise it has a
+     * If &gt; 0, the note is an automatically numbered note, otherwise it has a
      * custom mark.
      */
     public short getNAuto()
@@ -75,7 +71,7 @@ public abstract class FRDAbstractType {
     }
 
     /**
-     * If > 0, the note is an automatically numbered note, otherwise it has a
+     * If &gt; 0, the note is an automatically numbered note, otherwise it has a
      * custom mark.
      */
     public void setNAuto( short field_1_nAuto )
@@ -83,4 +79,4 @@ public abstract class FRDAbstractType {
         this.field_1_nAuto = field_1_nAuto;
     }
 
-} // END OF CLASS
+}

Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/GrfhicAbstractType.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/GrfhicAbstractType.java?rev=1888746&r1=1888745&r2=1888746&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/GrfhicAbstractType.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/GrfhicAbstractType.java Tue Apr 13 21:37:33 2021
@@ -81,7 +81,7 @@ public abstract class GrfhicAbstractType
      */
     public static int getSize()
     {
-        return 0 + 1;
+        return 1;
     }
 
     @Override
@@ -94,9 +94,7 @@ public abstract class GrfhicAbstractType
         if ( getClass() != obj.getClass() )
             return false;
         GrfhicAbstractType other = (GrfhicAbstractType) obj;
-        if ( field_1_grfhic != other.field_1_grfhic )
-            return false;
-        return true;
+        return field_1_grfhic == other.field_1_grfhic;
     }
 
     @Override
@@ -106,22 +104,19 @@ public abstract class GrfhicAbstractType
 
     public String toString()
     {
-        StringBuilder builder = new StringBuilder();
-
-        builder.append("[Grfhic]\n");
-        builder.append( "    .grfhic               = " );
-        builder.append(" ( ").append( field_1_grfhic ).append( " )\n" );
-        builder.append("         .fHtmlChecked             = ").append(isFHtmlChecked()).append('\n');
-        builder.append("         .fHtmlUnsupported         = ").append(isFHtmlUnsupported()).append('\n');
-        builder.append("         .fHtmlListTextNotSharpDot     = ").append(isFHtmlListTextNotSharpDot()).append('\n');
-        builder.append("         .fHtmlNotPeriod           = ").append(isFHtmlNotPeriod()).append('\n');
-        builder.append("         .fHtmlFirstLineMismatch     = ").append(isFHtmlFirstLineMismatch()).append('\n');
-        builder.append("         .fHtmlTabLeftIndentMismatch     = ").append(isFHtmlTabLeftIndentMismatch()).append('\n');
-        builder.append("         .fHtmlHangingIndentBeneathNumber     = ").append(isFHtmlHangingIndentBeneathNumber()).append('\n');
-        builder.append("         .fHtmlBuiltInBullet       = ").append(isFHtmlBuiltInBullet()).append('\n');
-
-        builder.append("[/Grfhic]");
-        return builder.toString();
+        String builder = "[Grfhic]\n" +
+            "    .grfhic               = " +
+            " ( " + field_1_grfhic + " )\n" +
+            "         .fHtmlChecked             = " + isFHtmlChecked() + '\n' +
+            "         .fHtmlUnsupported         = " + isFHtmlUnsupported() + '\n' +
+            "         .fHtmlListTextNotSharpDot     = " + isFHtmlListTextNotSharpDot() + '\n' +
+            "         .fHtmlNotPeriod           = " + isFHtmlNotPeriod() + '\n' +
+            "         .fHtmlFirstLineMismatch     = " + isFHtmlFirstLineMismatch() + '\n' +
+            "         .fHtmlTabLeftIndentMismatch     = " + isFHtmlTabLeftIndentMismatch() + '\n' +
+            "         .fHtmlHangingIndentBeneathNumber     = " + isFHtmlHangingIndentBeneathNumber() + '\n' +
+            "         .fHtmlBuiltInBullet       = " + isFHtmlBuiltInBullet() + '\n' +
+            "[/Grfhic]";
+        return builder;
     }
 
     /**
@@ -164,7 +159,7 @@ public abstract class GrfhicAbstractType
 
     /**
      * Sets the fHtmlUnsupported field value.
-     * The numbering sequence or format is unsupported (includes tab & size)
+     * The numbering sequence or format is unsupported (includes tab &amp; size)
      */
     @Internal
     public void setFHtmlUnsupported( boolean value )
@@ -173,7 +168,7 @@ public abstract class GrfhicAbstractType
     }
 
     /**
-     * The numbering sequence or format is unsupported (includes tab & size)
+     * The numbering sequence or format is unsupported (includes tab &amp; size)
      * @return  the fHtmlUnsupported field value.
      */
     @Internal

Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/PAPAbstractType.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/PAPAbstractType.java?rev=1888746&r1=1888745&r2=1888746&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/PAPAbstractType.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/PAPAbstractType.java Tue Apr 13 21:37:33 2021
@@ -247,174 +247,91 @@ public abstract class PAPAbstractType {
 
     }
 
-    public String toString()
-    {
-        StringBuilder builder = new StringBuilder();
-        builder.append("[PAP]\n");
-        builder.append("    .istd                 = ");
-        builder.append(" (").append(getIstd()).append(" )\n");
-        builder.append("    .fSideBySide          = ");
-        builder.append(" (").append(getFSideBySide()).append(" )\n");
-        builder.append("    .fKeep                = ");
-        builder.append(" (").append(getFKeep()).append(" )\n");
-        builder.append("    .fKeepFollow          = ");
-        builder.append(" (").append(getFKeepFollow()).append(" )\n");
-        builder.append("    .fPageBreakBefore     = ");
-        builder.append(" (").append(getFPageBreakBefore()).append(" )\n");
-        builder.append("    .brcl                 = ");
-        builder.append(" (").append(getBrcl()).append(" )\n");
-        builder.append("    .brcp                 = ");
-        builder.append(" (").append(getBrcp()).append(" )\n");
-        builder.append("    .ilvl                 = ");
-        builder.append(" (").append(getIlvl()).append(" )\n");
-        builder.append("    .ilfo                 = ");
-        builder.append(" (").append(getIlfo()).append(" )\n");
-        builder.append("    .fNoLnn               = ");
-        builder.append(" (").append(getFNoLnn()).append(" )\n");
-        builder.append("    .lspd                 = ");
-        builder.append(" (").append(getLspd()).append(" )\n");
-        builder.append("    .dyaBefore            = ");
-        builder.append(" (").append(getDyaBefore()).append(" )\n");
-        builder.append("    .dyaAfter             = ");
-        builder.append(" (").append(getDyaAfter()).append(" )\n");
-        builder.append("    .fInTable             = ");
-        builder.append(" (").append(getFInTable()).append(" )\n");
-        builder.append("    .finTableW97          = ");
-        builder.append(" (").append(getFinTableW97()).append(" )\n");
-        builder.append("    .fTtp                 = ");
-        builder.append(" (").append(getFTtp()).append(" )\n");
-        builder.append("    .dxaAbs               = ");
-        builder.append(" (").append(getDxaAbs()).append(" )\n");
-        builder.append("    .dyaAbs               = ");
-        builder.append(" (").append(getDyaAbs()).append(" )\n");
-        builder.append("    .dxaWidth             = ");
-        builder.append(" (").append(getDxaWidth()).append(" )\n");
-        builder.append("    .fBrLnAbove           = ");
-        builder.append(" (").append(getFBrLnAbove()).append(" )\n");
-        builder.append("    .fBrLnBelow           = ");
-        builder.append(" (").append(getFBrLnBelow()).append(" )\n");
-        builder.append("    .pcVert               = ");
-        builder.append(" (").append(getPcVert()).append(" )\n");
-        builder.append("    .pcHorz               = ");
-        builder.append(" (").append(getPcHorz()).append(" )\n");
-        builder.append("    .wr                   = ");
-        builder.append(" (").append(getWr()).append(" )\n");
-        builder.append("    .fNoAutoHyph          = ");
-        builder.append(" (").append(getFNoAutoHyph()).append(" )\n");
-        builder.append("    .dyaHeight            = ");
-        builder.append(" (").append(getDyaHeight()).append(" )\n");
-        builder.append("    .fMinHeight           = ");
-        builder.append(" (").append(getFMinHeight()).append(" )\n");
-        builder.append("    .dcs                  = ");
-        builder.append(" (").append(getDcs()).append(" )\n");
-        builder.append("    .dyaFromText          = ");
-        builder.append(" (").append(getDyaFromText()).append(" )\n");
-        builder.append("    .dxaFromText          = ");
-        builder.append(" (").append(getDxaFromText()).append(" )\n");
-        builder.append("    .fLocked              = ");
-        builder.append(" (").append(getFLocked()).append(" )\n");
-        builder.append("    .fWidowControl        = ");
-        builder.append(" (").append(getFWidowControl()).append(" )\n");
-        builder.append("    .fKinsoku             = ");
-        builder.append(" (").append(getFKinsoku()).append(" )\n");
-        builder.append("    .fWordWrap            = ");
-        builder.append(" (").append(getFWordWrap()).append(" )\n");
-        builder.append("    .fOverflowPunct       = ");
-        builder.append(" (").append(getFOverflowPunct()).append(" )\n");
-        builder.append("    .fTopLinePunct        = ");
-        builder.append(" (").append(getFTopLinePunct()).append(" )\n");
-        builder.append("    .fAutoSpaceDE         = ");
-        builder.append(" (").append(getFAutoSpaceDE()).append(" )\n");
-        builder.append("    .fAutoSpaceDN         = ");
-        builder.append(" (").append(getFAutoSpaceDN()).append(" )\n");
-        builder.append("    .wAlignFont           = ");
-        builder.append(" (").append(getWAlignFont()).append(" )\n");
-        builder.append("    .fontAlign            = ");
-        builder.append(" (").append(getFontAlign()).append(" )\n");
-        builder.append("         .fVertical                = ").append(isFVertical()).append('\n');
-        builder.append("         .fBackward                = ").append(isFBackward()).append('\n');
-        builder.append("         .fRotateFont              = ").append(isFRotateFont()).append('\n');
-        builder.append("    .lvl                  = ");
-        builder.append(" (").append(getLvl()).append(" )\n");
-        builder.append("    .fBiDi                = ");
-        builder.append(" (").append(getFBiDi()).append(" )\n");
-        builder.append("    .fNumRMIns            = ");
-        builder.append(" (").append(getFNumRMIns()).append(" )\n");
-        builder.append("    .fCrLf                = ");
-        builder.append(" (").append(getFCrLf()).append(" )\n");
-        builder.append("    .fUsePgsuSettings     = ");
-        builder.append(" (").append(getFUsePgsuSettings()).append(" )\n");
-        builder.append("    .fAdjustRight         = ");
-        builder.append(" (").append(getFAdjustRight()).append(" )\n");
-        builder.append("    .itap                 = ");
-        builder.append(" (").append(getItap()).append(" )\n");
-        builder.append("    .fInnerTableCell      = ");
-        builder.append(" (").append(getFInnerTableCell()).append(" )\n");
-        builder.append("    .fOpenTch             = ");
-        builder.append(" (").append(getFOpenTch()).append(" )\n");
-        builder.append("    .fTtpEmbedded         = ");
-        builder.append(" (").append(getFTtpEmbedded()).append(" )\n");
-        builder.append("    .dxcRight             = ");
-        builder.append(" (").append(getDxcRight()).append(" )\n");
-        builder.append("    .dxcLeft              = ");
-        builder.append(" (").append(getDxcLeft()).append(" )\n");
-        builder.append("    .dxcLeft1             = ");
-        builder.append(" (").append(getDxcLeft1()).append(" )\n");
-        builder.append("    .fDyaBeforeAuto       = ");
-        builder.append(" (").append(getFDyaBeforeAuto()).append(" )\n");
-        builder.append("    .fDyaAfterAuto        = ");
-        builder.append(" (").append(getFDyaAfterAuto()).append(" )\n");
-        builder.append("    .dxaRight             = ");
-        builder.append(" (").append(getDxaRight()).append(" )\n");
-        builder.append("    .dxaLeft              = ");
-        builder.append(" (").append(getDxaLeft()).append(" )\n");
-        builder.append("    .dxaLeft1             = ");
-        builder.append(" (").append(getDxaLeft1()).append(" )\n");
-        builder.append("    .jc                   = ");
-        builder.append(" (").append(getJc()).append(" )\n");
-        builder.append("    .brcTop               = ");
-        builder.append(" (").append(getBrcTop()).append(" )\n");
-        builder.append("    .brcLeft              = ");
-        builder.append(" (").append(getBrcLeft()).append(" )\n");
-        builder.append("    .brcBottom            = ");
-        builder.append(" (").append(getBrcBottom()).append(" )\n");
-        builder.append("    .brcRight             = ");
-        builder.append(" (").append(getBrcRight()).append(" )\n");
-        builder.append("    .brcBetween           = ");
-        builder.append(" (").append(getBrcBetween()).append(" )\n");
-        builder.append("    .brcBar               = ");
-        builder.append(" (").append(getBrcBar()).append(" )\n");
-        builder.append("    .shd                  = ");
-        builder.append(" (").append(getShd()).append(" )\n");
-        builder.append("    .anld                 = ");
-        builder.append(" (").append(Arrays.toString(getAnld())).append(" )\n");
-        builder.append("    .phe                  = ");
-        builder.append(" (").append(Arrays.toString(getPhe())).append(" )\n");
-        builder.append("    .fPropRMark           = ");
-        builder.append(" (").append(getFPropRMark()).append(" )\n");
-        builder.append("    .ibstPropRMark        = ");
-        builder.append(" (").append(getIbstPropRMark()).append(" )\n");
-        builder.append("    .dttmPropRMark        = ");
-        builder.append(" (").append(getDttmPropRMark()).append(" )\n");
-        builder.append("    .itbdMac              = ");
-        builder.append(" (").append(getItbdMac()).append(" )\n");
-        builder.append("    .rgdxaTab             = ");
-        builder.append(" (").append(Arrays.toString(getRgdxaTab())).append(" )\n");
-        builder.append("    .rgtbd                = ");
-        builder.append(" (").append(Arrays.toString(getRgtbd())).append(" )\n");
-        builder.append("    .numrm                = ");
-        builder.append(" (").append(Arrays.toString(getNumrm())).append(" )\n");
-        builder.append("    .ptap                 = ");
-        builder.append(" (").append(Arrays.toString(getPtap())).append(" )\n");
-        builder.append("    .fNoAllowOverlap      = ");
-        builder.append(" (").append(getFNoAllowOverlap()).append(" )\n");
-        builder.append("    .ipgp                 = ");
-        builder.append(" (").append(getIpgp()).append(" )\n");
-        builder.append("    .rsid                 = ");
-        builder.append(" (").append(getRsid()).append(" )\n");
-
-        builder.append("[/PAP]\n");
-        return builder.toString();
+    public String toString() {
+        return "[PAP]\n" +
+            "    .istd                 =  (" + getIstd() + " )\n" +
+            "    .fSideBySide          =  (" + getFSideBySide() + " )\n" +
+            "    .fKeep                =  (" + getFKeep() + " )\n" +
+            "    .fKeepFollow          =  (" + getFKeepFollow() + " )\n" +
+            "    .fPageBreakBefore     =  (" + getFPageBreakBefore() + " )\n" +
+            "    .brcl                 =  (" + getBrcl() + " )\n" +
+            "    .brcp                 =  (" + getBrcp() + " )\n" +
+            "    .ilvl                 =  (" + getIlvl() + " )\n" +
+            "    .ilfo                 =  (" + getIlfo() + " )\n" +
+            "    .fNoLnn               =  (" + getFNoLnn() + " )\n" +
+            "    .lspd                 =  (" + getLspd() + " )\n" +
+            "    .dyaBefore            =  (" + getDyaBefore() + " )\n" +
+            "    .dyaAfter             =  (" + getDyaAfter() + " )\n" +
+            "    .fInTable             =  (" + getFInTable() + " )\n" +
+            "    .finTableW97          =  (" + getFinTableW97() + " )\n" +
+            "    .fTtp                 =  (" + getFTtp() + " )\n" +
+            "    .dxaAbs               =  (" + getDxaAbs() + " )\n" +
+            "    .dyaAbs               =  (" + getDyaAbs() + " )\n" +
+            "    .dxaWidth             =  (" + getDxaWidth() + " )\n" +
+            "    .fBrLnAbove           =  (" + getFBrLnAbove() + " )\n" +
+            "    .fBrLnBelow           =  (" + getFBrLnBelow() + " )\n" +
+            "    .pcVert               =  (" + getPcVert() + " )\n" +
+            "    .pcHorz               =  (" + getPcHorz() + " )\n" +
+            "    .wr                   =  (" + getWr() + " )\n" +
+            "    .fNoAutoHyph          =  (" + getFNoAutoHyph() + " )\n" +
+            "    .dyaHeight            =  (" + getDyaHeight() + " )\n" +
+            "    .fMinHeight           =  (" + getFMinHeight() + " )\n" +
+            "    .dcs                  =  (" + getDcs() + " )\n" +
+            "    .dyaFromText          =  (" + getDyaFromText() + " )\n" +
+            "    .dxaFromText          =  (" + getDxaFromText() + " )\n" +
+            "    .fLocked              =  (" + getFLocked() + " )\n" +
+            "    .fWidowControl        =  (" + getFWidowControl() + " )\n" +
+            "    .fKinsoku             =  (" + getFKinsoku() + " )\n" +
+            "    .fWordWrap            =  (" + getFWordWrap() + " )\n" +
+            "    .fOverflowPunct       =  (" + getFOverflowPunct() + " )\n" +
+            "    .fTopLinePunct        =  (" + getFTopLinePunct() + " )\n" +
+            "    .fAutoSpaceDE         =  (" + getFAutoSpaceDE() + " )\n" +
+            "    .fAutoSpaceDN         =  (" + getFAutoSpaceDN() + " )\n" +
+            "    .wAlignFont           =  (" + getWAlignFont() + " )\n" +
+            "    .fontAlign            =  (" + getFontAlign() + " )\n" +
+            "         .fVertical                = " + isFVertical() + '\n' +
+            "         .fBackward                = " + isFBackward() + '\n' +
+            "         .fRotateFont              = " + isFRotateFont() + '\n' +
+            "    .lvl                  =  (" + getLvl() + " )\n" +
+            "    .fBiDi                =  (" + getFBiDi() + " )\n" +
+            "    .fNumRMIns            =  (" + getFNumRMIns() + " )\n" +
+            "    .fCrLf                =  (" + getFCrLf() + " )\n" +
+            "    .fUsePgsuSettings     =  (" + getFUsePgsuSettings() + " )\n" +
+            "    .fAdjustRight         =  (" + getFAdjustRight() + " )\n" +
+            "    .itap                 =  (" + getItap() + " )\n" +
+            "    .fInnerTableCell      =  (" + getFInnerTableCell() + " )\n" +
+            "    .fOpenTch             =  (" + getFOpenTch() + " )\n" +
+            "    .fTtpEmbedded         =  (" + getFTtpEmbedded() + " )\n" +
+            "    .dxcRight             =  (" + getDxcRight() + " )\n" +
+            "    .dxcLeft              =  (" + getDxcLeft() + " )\n" +
+            "    .dxcLeft1             =  (" + getDxcLeft1() + " )\n" +
+            "    .fDyaBeforeAuto       =  (" + getFDyaBeforeAuto() + " )\n" +
+            "    .fDyaAfterAuto        =  (" + getFDyaAfterAuto() + " )\n" +
+            "    .dxaRight             =  (" + getDxaRight() + " )\n" +
+            "    .dxaLeft              =  (" + getDxaLeft() + " )\n" +
+            "    .dxaLeft1             =  (" + getDxaLeft1() + " )\n" +
+            "    .jc                   =  (" + getJc() + " )\n" +
+            "    .brcTop               =  (" + getBrcTop() + " )\n" +
+            "    .brcLeft              =  (" + getBrcLeft() + " )\n" +
+            "    .brcBottom            =  (" + getBrcBottom() + " )\n" +
+            "    .brcRight             =  (" + getBrcRight() + " )\n" +
+            "    .brcBetween           =  (" + getBrcBetween() + " )\n" +
+            "    .brcBar               =  (" + getBrcBar() + " )\n" +
+            "    .shd                  =  (" + getShd() + " )\n" +
+            "    .anld                 =  (" + Arrays.toString(getAnld()) + " )\n" +
+            "    .phe                  =  (" + Arrays.toString(getPhe()) + " )\n" +
+            "    .fPropRMark           =  (" + getFPropRMark() + " )\n" +
+            "    .ibstPropRMark        =  (" + getIbstPropRMark() + " )\n" +
+            "    .dttmPropRMark        =  (" + getDttmPropRMark() + " )\n" +
+            "    .itbdMac              =  (" + getItbdMac() + " )\n" +
+            "    .rgdxaTab             =  (" + Arrays.toString(getRgdxaTab()) + " )\n" +
+            "    .rgtbd                =  (" + Arrays.toString(getRgtbd()) + " )\n" +
+            "    .numrm                =  (" + Arrays.toString(getNumrm()) + " )\n" +
+            "    .ptap                 =  (" + Arrays.toString(getPtap()) + " )\n" +
+            "    .fNoAllowOverlap      =  (" + getFNoAllowOverlap() + " )\n" +
+            "    .ipgp                 =  (" + getIpgp() + " )\n" +
+            "    .rsid                 =  (" + getRsid() + " )\n" +
+            "[/PAP]\n";
     }
 
     /**
@@ -1785,7 +1702,7 @@ public abstract class PAPAbstractType {
     }
 
     /**
-     * Number of tabs stops defined for paragraph. Must be >= 0 and <= 64..
+     * Number of tabs stops defined for paragraph. Must be &gt;= 0 and &lt;= 64..
      */
     @Internal
     public int getItbdMac()
@@ -1794,7 +1711,7 @@ public abstract class PAPAbstractType {
     }
 
     /**
-     * Number of tabs stops defined for paragraph. Must be >= 0 and <= 64..
+     * Number of tabs stops defined for paragraph. Must be &gt;= 0 and &lt;= 64..
      */
     @Internal
     public void setItbdMac( int field_72_itbdMac )

Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/TAPAbstractType.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/TAPAbstractType.java?rev=1888746&r1=1888745&r2=1888746&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/TAPAbstractType.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/model/types/TAPAbstractType.java Tue Apr 13 21:37:33 2021
@@ -895,7 +895,7 @@ public abstract class TAPAbstractType {
     }
 
     /**
-     * Count of cells defined for this row. itcMac must be >= 0 and less than or equal to 64..
+     * Count of cells defined for this row. itcMac must be &gt;= 0 and less than or equal to 64..
      */
     @Internal
     public short getItcMac()
@@ -904,7 +904,7 @@ public abstract class TAPAbstractType {
     }
 
     /**
-     * Count of cells defined for this row. itcMac must be >= 0 and less than or equal to 64..
+     * Count of cells defined for this row. itcMac must be &gt;= 0 and less than or equal to 64..
      */
     @Internal
     public void setItcMac( short field_26_itcMac )

Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/usermodel/Paragraph.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/usermodel/Paragraph.java?rev=1888746&r1=1888745&r2=1888746&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/usermodel/Paragraph.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/usermodel/Paragraph.java Tue Apr 13 21:37:33 2021
@@ -547,11 +547,9 @@ public class Paragraph extends Range imp
   }
 
     /**
-     * Returns number of tabs stops defined for paragraph. Must be >= 0 and <=
-     * 64.
+     * Returns number of tabs stops defined for paragraph. Must be &gt;= 0 and &lt;= 64.
      *
-     * @return number of tabs stops defined for paragraph. Must be >= 0 and <=
-     *         64
+     * @return number of tabs stops defined for paragraph. Must be &gt;= 0 and &lt;= 64
      */
     public int getTabStopsNumber()
     {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org