Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartStartObjectRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartStartObjectRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartStartObjectRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartStartObjectRecord.java Sun Apr 12 22:03:52 2020 @@ -17,9 +17,13 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; /** @@ -74,23 +78,25 @@ public final class ChartStartObjectRecor out.writeShort(iObjectInstance2); } - public String toString() { - - StringBuilder buffer = new StringBuilder(); + @Override + public ChartStartObjectRecord copy() { + return new ChartStartObjectRecord(this); + } - buffer.append("[STARTOBJECT]\n"); - buffer.append(" .rt =").append(HexDump.shortToHex(rt)).append('\n'); - buffer.append(" .grbitFrt =").append(HexDump.shortToHex(grbitFrt)).append('\n'); - buffer.append(" .iObjectKind =").append(HexDump.shortToHex(iObjectKind)).append('\n'); - buffer.append(" .iObjectContext =").append(HexDump.shortToHex(iObjectContext)).append('\n'); - buffer.append(" .iObjectInstance1=").append(HexDump.shortToHex(iObjectInstance1)).append('\n'); - buffer.append(" .iObjectInstance2=").append(HexDump.shortToHex(iObjectInstance2)).append('\n'); - buffer.append("[/STARTOBJECT]\n"); - return buffer.toString(); + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.CHART_START_OBJECT; } @Override - public ChartStartObjectRecord copy() { - return new ChartStartObjectRecord(this); + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "rt", () -> rt, + "grbitFrt", () -> grbitFrt, + "iObjectKind", () -> iObjectKind, + "iObjectContext", () -> iObjectContext, + "iObjectInstance1", () -> iObjectInstance1, + "iObjectInstance2", () -> iObjectInstance2 + ); } }
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartTitleFormatRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartTitleFormatRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartTitleFormatRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartTitleFormatRecord.java Sun Apr 12 22:03:52 2020 @@ -20,10 +20,15 @@ */ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; import java.util.stream.Stream; +import org.apache.poi.common.usermodel.GenericRecord; +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; /** @@ -35,7 +40,7 @@ public class ChartTitleFormatRecord exte private final CTFormat[] _formats; - private static final class CTFormat { + private static final class CTFormat implements GenericRecord { public static final int ENCODED_SIZE=4; private int _offset; private int _fontIndex; @@ -64,6 +69,14 @@ public class ChartTitleFormatRecord exte out.writeShort(_offset); out.writeShort(_fontIndex); } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "offset", this::getOffset, + "fontIndex", this::getFontIndex + ); + } } public ChartTitleFormatRecord(ChartTitleFormatRecord other) { @@ -82,9 +95,9 @@ public class ChartTitleFormatRecord exte public void serialize(LittleEndianOutput out) { out.writeShort(_formats.length); - for(int i=0; i<_formats.length; i++){ - _formats[i].serialize(out); - } + for (CTFormat format : _formats) { + format.serialize(out); + } } protected int getDataSize() { @@ -112,23 +125,18 @@ public class ChartTitleFormatRecord exte } } - public String toString() { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[CHARTTITLEFORMAT]\n"); - buffer.append(" .format_runs = ").append(_formats.length).append("\n"); - for(int i=0; i<_formats.length; i++) { - CTFormat ctf = _formats[i]; - buffer.append(" .char_offset= ").append(ctf.getOffset()); - buffer.append(",.fontidx= ").append(ctf.getFontIndex()); - buffer.append("\n"); - } - buffer.append("[/CHARTTITLEFORMAT]\n"); - return buffer.toString(); - } - @Override public ChartTitleFormatRecord copy() { return new ChartTitleFormatRecord(this); } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.CHART_TITLE_FORMAT; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties("formats", () -> _formats); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/DatRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/DatRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/DatRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/DatRecord.java Sun Apr 12 22:03:52 2020 @@ -17,11 +17,15 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; import org.apache.poi.util.BitField; import org.apache.poi.util.BitFieldFactory; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -49,24 +53,6 @@ public final class DatRecord extends Sta field_1_options = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[DAT]\n"); - buffer.append(" .options = ") - .append("0x").append(HexDump.toHex( getOptions ())) - .append(" (").append( getOptions() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .horizontalBorder = ").append(isHorizontalBorder()).append('\n'); - buffer.append(" .verticalBorder = ").append(isVerticalBorder()).append('\n'); - buffer.append(" .border = ").append(isBorder()).append('\n'); - buffer.append(" .showSeriesKey = ").append(isShowSeriesKey()).append('\n'); - - buffer.append("[/DAT]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeShort(field_1_options); } @@ -81,7 +67,7 @@ public final class DatRecord extends Sta } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public DatRecord clone() { @@ -180,4 +166,20 @@ public final class DatRecord extends Sta { return showSeriesKey.isSet(field_1_options); } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.DAT; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "options", this::getOptions, + "horizontalBorder", this::isHorizontalBorder, + "verticalBorder", this::isVerticalBorder, + "border", this::isBorder, + "showSeriesKey", this::isShowSeriesKey + ); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/DataFormatRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/DataFormatRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/DataFormatRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/DataFormatRecord.java Sun Apr 12 22:03:52 2020 @@ -17,11 +17,15 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; import org.apache.poi.util.BitField; import org.apache.poi.util.BitFieldFactory; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -55,33 +59,6 @@ public final class DataFormatRecord exte field_4_formatFlags = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[DATAFORMAT]\n"); - buffer.append(" .pointNumber = ") - .append("0x").append(HexDump.toHex( getPointNumber ())) - .append(" (").append( getPointNumber() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .seriesIndex = ") - .append("0x").append(HexDump.toHex( getSeriesIndex ())) - .append(" (").append( getSeriesIndex() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .seriesNumber = ") - .append("0x").append(HexDump.toHex( getSeriesNumber ())) - .append(" (").append( getSeriesNumber() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .formatFlags = ") - .append("0x").append(HexDump.toHex( getFormatFlags ())) - .append(" (").append( getFormatFlags() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .useExcel4Colors = ").append(isUseExcel4Colors()).append('\n'); - - buffer.append("[/DATAFORMAT]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeShort(field_1_pointNumber); out.writeShort(field_2_seriesIndex); @@ -99,7 +76,7 @@ public final class DataFormatRecord exte } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public DataFormatRecord clone() { @@ -192,4 +169,21 @@ public final class DataFormatRecord exte { return useExcel4Colors.isSet(field_4_formatFlags); } + + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.DATA_FORMAT; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "pointNumber", this::getPointNumber, + "seriesIndex", this::getSeriesIndex, + "seriesNumber", this::getSeriesNumber, + "formatFlags", this::getFormatFlags, + "useExcel4Colors", this::isUseExcel4Colors + ); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/DataLabelExtensionRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/DataLabelExtensionRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/DataLabelExtensionRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/DataLabelExtensionRecord.java Sun Apr 12 22:03:52 2020 @@ -17,9 +17,13 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; /** @@ -63,20 +67,21 @@ public final class DataLabelExtensionRec } @Override - public String toString() { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[DATALABEXT]\n"); - buffer.append(" .rt =").append(HexDump.shortToHex(rt)).append('\n'); - buffer.append(" .grbitFrt=").append(HexDump.shortToHex(grbitFrt)).append('\n'); - buffer.append(" .unused =").append(HexDump.toHex(unused)).append('\n'); + public DataLabelExtensionRecord copy() { + return new DataLabelExtensionRecord(this); + } - buffer.append("[/DATALABEXT]\n"); - return buffer.toString(); + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.DATA_LABEL_EXTENSION; } @Override - public DataLabelExtensionRecord copy() { - return new DataLabelExtensionRecord(this); + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "rt", () -> rt, + "grbitFrt", () -> grbitFrt, + "unused", () -> unused + ); } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/DefaultDataLabelTextPropertiesRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/DefaultDataLabelTextPropertiesRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/DefaultDataLabelTextPropertiesRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/DefaultDataLabelTextPropertiesRecord.java Sun Apr 12 22:03:52 2020 @@ -17,9 +17,13 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -45,20 +49,6 @@ public final class DefaultDataLabelTextP field_1_categoryDataType = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[DEFAULTTEXT]\n"); - buffer.append(" .categoryDataType = ") - .append("0x").append(HexDump.toHex( getCategoryDataType ())) - .append(" (").append( getCategoryDataType() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - - buffer.append("[/DEFAULTTEXT]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeShort(field_1_categoryDataType); } @@ -73,7 +63,7 @@ public final class DefaultDataLabelTextP } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public DefaultDataLabelTextPropertiesRecord clone() { @@ -111,4 +101,16 @@ public final class DefaultDataLabelTextP { this.field_1_categoryDataType = field_1_categoryDataType; } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.DEFAULT_DATA_LABEL_TEXT_PROPERTIES; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "categoryDataType", this::getCategoryDataType + ); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/EndRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/EndRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/EndRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/EndRecord.java Sun Apr 12 22:03:52 2020 @@ -17,6 +17,10 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; import org.apache.poi.util.LittleEndianOutput; @@ -40,15 +44,6 @@ public final class EndRecord extends Sta public EndRecord(RecordInputStream in) { } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[END]\n"); - buffer.append("[/END]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { } @@ -62,7 +57,7 @@ public final class EndRecord extends Sta } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public EndRecord clone() { @@ -74,4 +69,14 @@ public final class EndRecord extends Sta // No data so nothing to copy return new EndRecord(); } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.END; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return null; + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/FontBasisRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/FontBasisRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/FontBasisRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/FontBasisRecord.java Sun Apr 12 22:03:52 2020 @@ -17,9 +17,13 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -53,36 +57,6 @@ public final class FontBasisRecord exten field_5_indexToFontTable = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[FBI]\n"); - buffer.append(" .xBasis = ") - .append("0x").append(HexDump.toHex( getXBasis ())) - .append(" (").append( getXBasis() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .yBasis = ") - .append("0x").append(HexDump.toHex( getYBasis ())) - .append(" (").append( getYBasis() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .heightBasis = ") - .append("0x").append(HexDump.toHex( getHeightBasis ())) - .append(" (").append( getHeightBasis() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .scale = ") - .append("0x").append(HexDump.toHex( getScale ())) - .append(" (").append( getScale() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .indexToFontTable = ") - .append("0x").append(HexDump.toHex( getIndexToFontTable ())) - .append(" (").append( getIndexToFontTable() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - - buffer.append("[/FBI]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeShort(field_1_xBasis); out.writeShort(field_2_yBasis); @@ -101,7 +75,7 @@ public final class FontBasisRecord exten } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public FontBasisRecord clone() { @@ -192,4 +166,20 @@ public final class FontBasisRecord exten { this.field_5_indexToFontTable = field_5_indexToFontTable; } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.FONT_BASIS; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "xBasis", this::getXBasis, + "yBasis", this::getYBasis, + "heightBasis", this::getHeightBasis, + "scale", this::getScale, + "indexToFontTable", this::getIndexToFontTable + ); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/FontIndexRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/FontIndexRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/FontIndexRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/FontIndexRecord.java Sun Apr 12 22:03:52 2020 @@ -17,9 +17,13 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -39,20 +43,6 @@ public final class FontIndexRecord exten field_1_fontIndex = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[FONTX]\n"); - buffer.append(" .fontIndex = ") - .append("0x").append(HexDump.toHex( getFontIndex ())) - .append(" (").append( getFontIndex() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - - buffer.append("[/FONTX]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeShort(field_1_fontIndex); } @@ -67,7 +57,7 @@ public final class FontIndexRecord exten } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public FontIndexRecord clone() { @@ -97,4 +87,14 @@ public final class FontIndexRecord exten { this.field_1_fontIndex = field_1_fontIndex; } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.FONT_INDEX; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties("fontIdex", this::getFontIndex); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/FrameRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/FrameRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/FrameRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/FrameRecord.java Sun Apr 12 22:03:52 2020 @@ -17,11 +17,15 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; import org.apache.poi.util.BitField; import org.apache.poi.util.BitFieldFactory; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -53,26 +57,6 @@ public final class FrameRecord extends S field_2_options = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[FRAME]\n"); - buffer.append(" .borderType = ") - .append("0x").append(HexDump.toHex( getBorderType ())) - .append(" (").append( getBorderType() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .options = ") - .append("0x").append(HexDump.toHex( getOptions ())) - .append(" (").append( getOptions() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .autoSize = ").append(isAutoSize()).append('\n'); - buffer.append(" .autoPosition = ").append(isAutoPosition()).append('\n'); - - buffer.append("[/FRAME]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeShort(field_1_borderType); out.writeShort(field_2_options); @@ -88,7 +72,7 @@ public final class FrameRecord extends S } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public FrameRecord clone() { @@ -176,4 +160,19 @@ public final class FrameRecord extends S { return autoPosition.isSet(field_2_options); } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.FRAME; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "borderType", this::getBorderType, + "options", this::getOptions, + "autoSize", this::isAutoSize, + "autoPosition", this::isAutoPosition + ); + } } \ No newline at end of file Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/LegendRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/LegendRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/LegendRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/LegendRecord.java Sun Apr 12 22:03:52 2020 @@ -17,11 +17,18 @@ package org.apache.poi.hssf.record.chart; +import static org.apache.poi.util.GenericRecordUtil.getBitsAsString; +import static org.apache.poi.util.GenericRecordUtil.getEnumBitsAsString; + +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; import org.apache.poi.util.BitField; import org.apache.poi.util.BitFieldFactory; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -80,50 +87,6 @@ public final class LegendRecord extends field_7_options = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[LEGEND]\n"); - buffer.append(" .xAxisUpperLeft = ") - .append("0x").append(HexDump.toHex( getXAxisUpperLeft ())) - .append(" (").append( getXAxisUpperLeft() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .yAxisUpperLeft = ") - .append("0x").append(HexDump.toHex( getYAxisUpperLeft ())) - .append(" (").append( getYAxisUpperLeft() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .xSize = ") - .append("0x").append(HexDump.toHex( getXSize ())) - .append(" (").append( getXSize() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .ySize = ") - .append("0x").append(HexDump.toHex( getYSize ())) - .append(" (").append( getYSize() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .type = ") - .append("0x").append(HexDump.toHex( getType ())) - .append(" (").append( getType() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .spacing = ") - .append("0x").append(HexDump.toHex( getSpacing ())) - .append(" (").append( getSpacing() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .options = ") - .append("0x").append(HexDump.toHex( getOptions ())) - .append(" (").append( getOptions() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .autoPosition = ").append(isAutoPosition()).append('\n'); - buffer.append(" .autoSeries = ").append(isAutoSeries()).append('\n'); - buffer.append(" .autoXPositioning = ").append(isAutoXPositioning()).append('\n'); - buffer.append(" .autoYPositioning = ").append(isAutoYPositioning()).append('\n'); - buffer.append(" .vertical = ").append(isVertical()).append('\n'); - buffer.append(" .dataTable = ").append(isDataTable()).append('\n'); - - buffer.append("[/LEGEND]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeInt(field_1_xAxisUpperLeft); out.writeInt(field_2_yAxisUpperLeft); @@ -144,7 +107,7 @@ public final class LegendRecord extends } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public LegendRecord clone() { @@ -406,4 +369,29 @@ public final class LegendRecord extends { return dataTable.isSet(field_7_options); } + + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.LEGEND; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "xAxisUpperLeft", this::getXAxisUpperLeft, + "yAxisUpperLeft", this::getYAxisUpperLeft, + "xSize", this::getXSize, + "ySize", this::getYSize, + "type", getEnumBitsAsString(this::getType, + new int[]{TYPE_BOTTOM, TYPE_CORNER, TYPE_TOP, TYPE_RIGHT, TYPE_LEFT, TYPE_UNDOCKED}, + new String[]{"BOTTOM","CORNER","TOP","RIGHT","LEFT","UNDOCKED"}), + "spacing", getEnumBitsAsString(this::getSpacing, + new int[]{SPACING_CLOSE, SPACING_MEDIUM, SPACING_OPEN}, + new String[]{"CLOSE","MEDIUM","OPEN"}), + "options", getBitsAsString(this::getOptions, + new BitField[]{autoPosition, autoSeries, autoXPositioning, autoYPositioning, vertical, dataTable}, + new String[]{"AUTO_POSITION","AUTO_SERIES","AUTO_X_POSITIONING","AUTO_Y_POSITIONING","VERTICAL","DATA_TABLE"}) + ); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/LineFormatRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/LineFormatRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/LineFormatRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/LineFormatRecord.java Sun Apr 12 22:03:52 2020 @@ -17,11 +17,18 @@ package org.apache.poi.hssf.record.chart; +import static org.apache.poi.util.GenericRecordUtil.getBitsAsString; +import static org.apache.poi.util.GenericRecordUtil.getEnumBitsAsString; + +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; import org.apache.poi.util.BitField; import org.apache.poi.util.BitFieldFactory; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -77,39 +84,6 @@ public final class LineFormatRecord exte field_5_colourPaletteIndex = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[LINEFORMAT]\n"); - buffer.append(" .lineColor = ") - .append("0x").append(HexDump.toHex( getLineColor ())) - .append(" (").append( getLineColor() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .linePattern = ") - .append("0x").append(HexDump.toHex( getLinePattern ())) - .append(" (").append( getLinePattern() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .weight = ") - .append("0x").append(HexDump.toHex( getWeight ())) - .append(" (").append( getWeight() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .format = ") - .append("0x").append(HexDump.toHex( getFormat ())) - .append(" (").append( getFormat() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .auto = ").append(isAuto()).append('\n'); - buffer.append(" .drawTicks = ").append(isDrawTicks()).append('\n'); - buffer.append(" .unknown = ").append(isUnknown()).append('\n'); - buffer.append(" .colourPaletteIndex = ") - .append("0x").append(HexDump.toHex( getColourPaletteIndex ())) - .append(" (").append( getColourPaletteIndex() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - - buffer.append("[/LINEFORMAT]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeInt(field_1_lineColor); out.writeShort(field_2_linePattern); @@ -128,7 +102,7 @@ public final class LineFormatRecord exte } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public LineFormatRecord clone() { @@ -309,4 +283,27 @@ public final class LineFormatRecord exte { return unknown.isSet(field_4_format); } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.LINE_FORMAT; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "lineColor", this::getLineColor, + "linePattern", getEnumBitsAsString(this::getLinePattern, + new int[]{LINE_PATTERN_SOLID, LINE_PATTERN_DASH, LINE_PATTERN_DOT, LINE_PATTERN_DASH_DOT, + LINE_PATTERN_DASH_DOT_DOT, LINE_PATTERN_NONE, LINE_PATTERN_DARK_GRAY_PATTERN, + LINE_PATTERN_MEDIUM_GRAY_PATTERN, LINE_PATTERN_LIGHT_GRAY_PATTERN}, + new String[]{"SOLID","DASH","DOT","DASH_DOT","DASH_DOT_DOT","NONE","DARK_GRAY_PATTERN","MEDIUM_GRAY_PATTERN","LIGHT_GRAY_PATTERN"}), + "weight", getEnumBitsAsString(this::getWeight, + new int[]{WEIGHT_HAIRLINE, WEIGHT_NARROW, WEIGHT_MEDIUM, WEIGHT_WIDE}, + new String[]{"HAIRLINE","NARROW","MEDIUM","WIDE"}), + "format", getBitsAsString(this::getFormat, + new BitField[]{auto,drawTicks,unknown},new String[]{"AUTO","DRAWTICKS","UNKNOWN"}), + "colourPaletteIndex", this::getColourPaletteIndex + ); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/LinkedDataRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/LinkedDataRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/LinkedDataRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/LinkedDataRecord.java Sun Apr 12 22:03:52 2020 @@ -17,13 +17,19 @@ package org.apache.poi.hssf.record.chart; +import static org.apache.poi.util.GenericRecordUtil.getEnumBitsAsString; + +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; import org.apache.poi.ss.formula.Formula; import org.apache.poi.ss.formula.ptg.Ptg; import org.apache.poi.util.BitField; import org.apache.poi.util.BitFieldFactory; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -73,26 +79,6 @@ public final class LinkedDataRecord exte field_5_formulaOfLink = Formula.read(encodedTokenLen, in); } - public String toString() { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[AI]\n"); - buffer.append(" .linkType = ").append(HexDump.byteToHex(getLinkType())).append('\n'); - buffer.append(" .referenceType = ").append(HexDump.byteToHex(getReferenceType())).append('\n'); - buffer.append(" .options = ").append(HexDump.shortToHex(getOptions())).append('\n'); - buffer.append(" .customNumberFormat = ").append(isCustomNumberFormat()).append('\n'); - buffer.append(" .indexNumberFmtRecord = ").append(HexDump.shortToHex(getIndexNumberFmtRecord())).append('\n'); - buffer.append(" .formulaOfLink = ").append('\n'); - Ptg[] ptgs = field_5_formulaOfLink.getTokens(); - for (int i = 0; i < ptgs.length; i++) { - Ptg ptg = ptgs[i]; - buffer.append(ptg).append(ptg.getRVAType()).append('\n'); - } - - buffer.append("[/AI]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeByte(field_1_linkType); out.writeByte(field_2_referenceType); @@ -110,7 +96,7 @@ public final class LinkedDataRecord exte } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public LinkedDataRecord clone() { @@ -246,4 +232,25 @@ public final class LinkedDataRecord exte { return customNumberFormat.isSet(field_3_options); } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.LINKED_DATA; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "linkType", getEnumBitsAsString(this::getLinkType, + new int[]{LINK_TYPE_TITLE_OR_TEXT,LINK_TYPE_VALUES,LINK_TYPE_CATEGORIES,LINK_TYPE_SECONDARY_CATEGORIES}, + new String[]{"TITLE_OR_TEXT","VALUES","CATEGORIES","SECONDARY_CATEGORIES"}), + "referenceType", getEnumBitsAsString(this::getReferenceType, + new int[]{REFERENCE_TYPE_DEFAULT_CATEGORIES, REFERENCE_TYPE_DIRECT, REFERENCE_TYPE_WORKSHEET, REFERENCE_TYPE_NOT_USED, REFERENCE_TYPE_ERROR_REPORTED}, + new String[]{"DEFAULT_CATEGORIES","DIRECT","WORKSHEET","NOT_USED","ERROR_REPORTED"}), + "options", this::getOptions, + "customNumberFormat", this::isCustomNumberFormat, + "indexNumberFmtRecord", this::getIndexNumberFmtRecord, + "formulaOfLink", () -> field_5_formulaOfLink + ); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/NumberFormatIndexRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/NumberFormatIndexRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/NumberFormatIndexRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/NumberFormatIndexRecord.java Sun Apr 12 22:03:52 2020 @@ -17,9 +17,13 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -42,20 +46,6 @@ public final class NumberFormatIndexReco field_1_formatIndex = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[IFMT]\n"); - buffer.append(" .formatIndex = ") - .append("0x").append(HexDump.toHex( getFormatIndex ())) - .append(" (").append( getFormatIndex() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - - buffer.append("[/IFMT]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeShort(field_1_formatIndex); } @@ -70,7 +60,7 @@ public final class NumberFormatIndexReco } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public NumberFormatIndexRecord clone() { @@ -97,4 +87,14 @@ public final class NumberFormatIndexReco { this.field_1_formatIndex = field_1_formatIndex; } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.NUMBER_FORMAT_INDEX; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties("formatIndex", this::getFormatIndex); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/ObjectLinkRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/ObjectLinkRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/ObjectLinkRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/ObjectLinkRecord.java Sun Apr 12 22:03:52 2020 @@ -17,9 +17,15 @@ package org.apache.poi.hssf.record.chart; +import static org.apache.poi.util.GenericRecordUtil.getEnumBitsAsString; + +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -54,28 +60,6 @@ public final class ObjectLinkRecord exte field_3_link2 = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[OBJECTLINK]\n"); - buffer.append(" .anchorId = ") - .append("0x").append(HexDump.toHex( getAnchorId ())) - .append(" (").append( getAnchorId() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .link1 = ") - .append("0x").append(HexDump.toHex( getLink1 ())) - .append(" (").append( getLink1() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .link2 = ") - .append("0x").append(HexDump.toHex( getLink2 ())) - .append(" (").append( getLink2() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - - buffer.append("[/OBJECTLINK]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeShort(field_1_anchorId); out.writeShort(field_2_link1); @@ -92,7 +76,7 @@ public final class ObjectLinkRecord exte } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public ObjectLinkRecord clone() { @@ -166,4 +150,20 @@ public final class ObjectLinkRecord exte { this.field_3_link2 = field_3_link2; } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.OBJECT_LINK; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "anchorId", getEnumBitsAsString(this::getAnchorId, + new int[]{ANCHOR_ID_CHART_TITLE, ANCHOR_ID_Y_AXIS, ANCHOR_ID_X_AXIS, ANCHOR_ID_SERIES_OR_POINT, ANCHOR_ID_Z_AXIS}, + new String[]{"CHART_TITLE","Y_AXIS","X_AXIS","SERIES_OR_POINT","Z_AXIS"}), + "link1", this::getLink1, + "link2", this::getLink2 + ); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/PlotAreaRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/PlotAreaRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/PlotAreaRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/PlotAreaRecord.java Sun Apr 12 22:03:52 2020 @@ -17,6 +17,10 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; import org.apache.poi.util.LittleEndianOutput; @@ -35,16 +39,6 @@ public final class PlotAreaRecord extend */ public PlotAreaRecord(RecordInputStream in) {} - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[PLOTAREA]\n"); - - buffer.append("[/PLOTAREA]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { } @@ -58,7 +52,7 @@ public final class PlotAreaRecord extend } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public PlotAreaRecord clone() { @@ -69,4 +63,14 @@ public final class PlotAreaRecord extend public PlotAreaRecord copy() { return new PlotAreaRecord(); } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.PLOT_AREA; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return null; + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/PlotGrowthRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/PlotGrowthRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/PlotGrowthRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/PlotGrowthRecord.java Sun Apr 12 22:03:52 2020 @@ -17,9 +17,13 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -44,24 +48,6 @@ public final class PlotGrowthRecord exte field_2_verticalScale = in.readInt(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[PLOTGROWTH]\n"); - buffer.append(" .horizontalScale = ") - .append("0x").append(HexDump.toHex( getHorizontalScale ())) - .append(" (").append( getHorizontalScale() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .verticalScale = ") - .append("0x").append(HexDump.toHex( getVerticalScale ())) - .append(" (").append( getVerticalScale() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - - buffer.append("[/PLOTGROWTH]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeInt(field_1_horizontalScale); out.writeInt(field_2_verticalScale); @@ -77,7 +63,7 @@ public final class PlotGrowthRecord exte } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public PlotGrowthRecord clone() { @@ -119,4 +105,18 @@ public final class PlotGrowthRecord exte { this.field_2_verticalScale = field_2_verticalScale; } + + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.PLOT_GROWTH; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "horizontalScale", this::getHorizontalScale, + "verticalScale", this::getVerticalScale + ); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesChartGroupIndexRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesChartGroupIndexRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesChartGroupIndexRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesChartGroupIndexRecord.java Sun Apr 12 22:03:52 2020 @@ -17,9 +17,13 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -42,20 +46,6 @@ public final class SeriesChartGroupIndex field_1_chartGroupIndex = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[SERTOCRT]\n"); - buffer.append(" .chartGroupIndex = ") - .append("0x").append(HexDump.toHex( getChartGroupIndex ())) - .append(" (").append( getChartGroupIndex() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - - buffer.append("[/SERTOCRT]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeShort(field_1_chartGroupIndex); } @@ -70,7 +60,7 @@ public final class SeriesChartGroupIndex } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public SeriesChartGroupIndexRecord clone() { @@ -97,4 +87,14 @@ public final class SeriesChartGroupIndex { this.field_1_chartGroupIndex = field_1_chartGroupIndex; } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.SERIES_CHART_GROUP_INDEX; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties("chartGroupIndex", this::getChartGroupIndex); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesIndexRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesIndexRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesIndexRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesIndexRecord.java Sun Apr 12 22:03:52 2020 @@ -17,9 +17,13 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -41,20 +45,6 @@ public final class SeriesIndexRecord ext field_1_index = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[SINDEX]\n"); - buffer.append(" .index = ") - .append("0x").append(HexDump.toHex( getIndex ())) - .append(" (").append( getIndex() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - - buffer.append("[/SINDEX]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeShort(field_1_index); } @@ -96,4 +86,14 @@ public final class SeriesIndexRecord ext { this.field_1_index = field_1_index; } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.SERIES_INDEX; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties("index", this::getIndex); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesLabelsRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesLabelsRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesLabelsRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesLabelsRecord.java Sun Apr 12 22:03:52 2020 @@ -17,11 +17,17 @@ package org.apache.poi.hssf.record.chart; +import static org.apache.poi.util.GenericRecordUtil.getBitsAsString; + +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; import org.apache.poi.util.BitField; import org.apache.poi.util.BitFieldFactory; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -51,26 +57,6 @@ public final class SeriesLabelsRecord ex field_1_formatFlags = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[ATTACHEDLABEL]\n"); - buffer.append(" .formatFlags = ") - .append("0x").append(HexDump.toHex( getFormatFlags ())) - .append(" (").append( getFormatFlags() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .showActual = ").append(isShowActual()).append('\n'); - buffer.append(" .showPercent = ").append(isShowPercent()).append('\n'); - buffer.append(" .labelAsPercentage = ").append(isLabelAsPercentage()).append('\n'); - buffer.append(" .smoothedLine = ").append(isSmoothedLine()).append('\n'); - buffer.append(" .showLabel = ").append(isShowLabel()).append('\n'); - buffer.append(" .showBubbleSizes = ").append(isShowBubbleSizes()).append('\n'); - - buffer.append("[/ATTACHEDLABEL]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeShort(field_1_formatFlags); } @@ -85,7 +71,7 @@ public final class SeriesLabelsRecord ex } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public SeriesLabelsRecord clone() { @@ -220,4 +206,17 @@ public final class SeriesLabelsRecord ex { return showBubbleSizes.isSet(field_1_formatFlags); } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.SERIES_LABELS; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "formatFlags", getBitsAsString(this::getFormatFlags, + new BitField[]{showActual,showPercent,labelAsPercentage,smoothedLine,showLabel,showBubbleSizes}, + new String[]{"SHOW_ACTUAL","SHOW_PERCENT","LABEL_AS_PERCENTAGE","SMOOTHED_LINE","SHOW_LABEL","SHOW_BUBBLE_SIZES"})); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesListRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesListRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesListRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesListRecord.java Sun Apr 12 22:03:52 2020 @@ -17,10 +17,13 @@ package org.apache.poi.hssf.record.chart; -import java.util.Arrays; +import java.util.Map; +import java.util.function.Supplier; +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -55,24 +58,13 @@ public final class SeriesListRecord exte field_1_seriesNumbers = ss; } - public String toString() { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[SERIESLIST]\n"); - buffer.append(" .seriesNumbers= ").append(" (").append( Arrays.toString(getSeriesNumbers()) ).append(" )"); - buffer.append("\n"); - - buffer.append("[/SERIESLIST]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { int nItems = field_1_seriesNumbers.length; out.writeShort(nItems); - for (int i = 0; i < nItems; i++) { - out.writeShort(field_1_seriesNumbers[i]); - } + for (short field_1_seriesNumber : field_1_seriesNumbers) { + out.writeShort(field_1_seriesNumber); + } } protected int getDataSize() { @@ -84,7 +76,7 @@ public final class SeriesListRecord exte } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public SeriesListRecord clone() { @@ -102,4 +94,14 @@ public final class SeriesListRecord exte public short[] getSeriesNumbers() { return field_1_seriesNumbers; } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.SERIES_LIST; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties("seriesNumbers", this::getSeriesNumbers); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesRecord.java Sun Apr 12 22:03:52 2020 @@ -17,9 +17,13 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -73,40 +77,6 @@ public final class SeriesRecord extends field_6_numBubbleValues = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[SERIES]\n"); - buffer.append(" .categoryDataType = ") - .append("0x").append(HexDump.toHex( getCategoryDataType ())) - .append(" (").append( getCategoryDataType() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .valuesDataType = ") - .append("0x").append(HexDump.toHex( getValuesDataType ())) - .append(" (").append( getValuesDataType() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .numCategories = ") - .append("0x").append(HexDump.toHex( getNumCategories ())) - .append(" (").append( getNumCategories() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .numValues = ") - .append("0x").append(HexDump.toHex( getNumValues ())) - .append(" (").append( getNumValues() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .bubbleSeriesType = ") - .append("0x").append(HexDump.toHex( getBubbleSeriesType ())) - .append(" (").append( getBubbleSeriesType() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .numBubbleValues = ") - .append("0x").append(HexDump.toHex( getNumBubbleValues ())) - .append(" (").append( getNumBubbleValues() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - - buffer.append("[/SERIES]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeShort(field_1_categoryDataType); out.writeShort(field_2_valuesDataType); @@ -126,7 +96,7 @@ public final class SeriesRecord extends } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public SeriesRecord clone() { @@ -272,4 +242,21 @@ public final class SeriesRecord extends { this.field_6_numBubbleValues = field_6_numBubbleValues; } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.SERIES; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "categoryDataType", this::getCategoryDataType, + "valuesDataType", this::getValuesDataType, + "numCategories", this::getNumCategories, + "numValues", this::getNumValues, + "bubbleSeriesType", this::getBubbleSeriesType, + "numBubbleValues", this::getNumBubbleValues + ); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesTextRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesTextRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesTextRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesTextRecord.java Sun Apr 12 22:03:52 2020 @@ -17,9 +17,13 @@ package org.apache.poi.hssf.record.chart; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; import org.apache.poi.util.StringUtil; @@ -63,18 +67,6 @@ public final class SeriesTextRecord exte } } - public String toString() { - StringBuilder sb = new StringBuilder(); - - sb.append("[SERIESTEXT]\n"); - sb.append(" .id =").append(HexDump.shortToHex(getId())).append('\n'); - sb.append(" .textLen=").append(field_4_text.length()).append('\n'); - sb.append(" .is16bit=").append(is16bit).append('\n'); - sb.append(" .text =").append(" (").append(getText()).append(" )").append('\n'); - sb.append("[/SERIESTEXT]\n"); - return sb.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeShort(field_1_id); @@ -99,7 +91,7 @@ public final class SeriesTextRecord exte } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public SeriesTextRecord clone() { @@ -143,4 +135,18 @@ public final class SeriesTextRecord exte field_4_text = text; is16bit = StringUtil.hasMultibyte(text); } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.SERIES_TEXT; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "id", this::getId, + "bit16", () -> is16bit, + "text", this::getText + ); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/SheetPropertiesRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/SheetPropertiesRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/SheetPropertiesRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/SheetPropertiesRecord.java Sun Apr 12 22:03:52 2020 @@ -17,11 +17,18 @@ package org.apache.poi.hssf.record.chart; +import static org.apache.poi.util.GenericRecordUtil.getBitsAsString; +import static org.apache.poi.util.GenericRecordUtil.getEnumBitsAsString; + +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; import org.apache.poi.util.BitField; import org.apache.poi.util.BitFieldFactory; -import org.apache.poi.util.HexDump; +import org.apache.poi.util.GenericRecordUtil; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -60,22 +67,6 @@ public final class SheetPropertiesRecord field_2_empty = in.readUShort(); } - public String toString() { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[SHTPROPS]\n"); - buffer.append(" .flags = ").append(HexDump.shortToHex(field_1_flags)).append('\n'); - buffer.append(" .chartTypeManuallyFormatted= ").append(isChartTypeManuallyFormatted()).append('\n'); - buffer.append(" .plotVisibleOnly = ").append(isPlotVisibleOnly()).append('\n'); - buffer.append(" .doNotSizeWithWindow = ").append(isDoNotSizeWithWindow()).append('\n'); - buffer.append(" .defaultPlotDimensions = ").append(isDefaultPlotDimensions()).append('\n'); - buffer.append(" .autoPlotArea = ").append(isAutoPlotArea()).append('\n'); - buffer.append(" .empty = ").append(HexDump.shortToHex(field_2_empty)).append('\n'); - - buffer.append("[/SHTPROPS]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeShort(field_1_flags); out.writeShort(field_2_empty); @@ -213,4 +204,21 @@ public final class SheetPropertiesRecord public boolean isAutoPlotArea() { return autoPlotArea.isSet(field_1_flags); } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.SHEET_PROPERTIES; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + return GenericRecordUtil.getGenericProperties( + "flags", getBitsAsString(this::getFlags, + new BitField[]{chartTypeManuallyFormatted, plotVisibleOnly, doNotSizeWithWindow, defaultPlotDimensions, autoPlotArea}, + new String[]{"CHART_TYPE_MANUALLY_FORMATTED","PLOT_VISIBLE_ONLY","DO_NOT_SIZE_WITH_WINDOW","DEFAULT_PLOT_DIMENSIONS","AUTO_PLOT_AREA"}), + "empty", getEnumBitsAsString(this::getEmpty, + new int[]{EMPTY_NOT_PLOTTED, EMPTY_ZERO, EMPTY_INTERPOLATED}, + new String[]{"EMPTY_NOT_PLOTTED","EMPTY_ZERO","EMPTY_INTERPOLATED"}) + ); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/TextRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/TextRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/TextRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/TextRecord.java Sun Apr 12 22:03:52 2020 @@ -17,11 +17,19 @@ package org.apache.poi.hssf.record.chart; +import static org.apache.poi.util.GenericRecordUtil.getBitsAsString; +import static org.apache.poi.util.GenericRecordUtil.getEnumBitsAsString; + +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; import org.apache.poi.util.BitField; import org.apache.poi.util.BitFieldFactory; -import org.apache.poi.util.HexDump; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -124,78 +132,6 @@ public final class TextRecord extends St field_12_textRotation = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[TEXT]\n"); - buffer.append(" .horizontalAlignment = ") - .append("0x").append(HexDump.toHex( getHorizontalAlignment ())) - .append(" (").append( getHorizontalAlignment() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .verticalAlignment = ") - .append("0x").append(HexDump.toHex( getVerticalAlignment ())) - .append(" (").append( getVerticalAlignment() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .displayMode = ") - .append("0x").append(HexDump.toHex( getDisplayMode ())) - .append(" (").append( getDisplayMode() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .rgbColor = ") - .append("0x").append(HexDump.toHex( getRgbColor ())) - .append(" (").append( getRgbColor() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .x = ") - .append("0x").append(HexDump.toHex( getX ())) - .append(" (").append( getX() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .y = ") - .append("0x").append(HexDump.toHex( getY ())) - .append(" (").append( getY() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .width = ") - .append("0x").append(HexDump.toHex( getWidth ())) - .append(" (").append( getWidth() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .height = ") - .append("0x").append(HexDump.toHex( getHeight ())) - .append(" (").append( getHeight() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .options1 = ") - .append("0x").append(HexDump.toHex( getOptions1 ())) - .append(" (").append( getOptions1() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .autoColor = ").append(isAutoColor()).append('\n'); - buffer.append(" .showKey = ").append(isShowKey()).append('\n'); - buffer.append(" .showValue = ").append(isShowValue()).append('\n'); - buffer.append(" .vertical = ").append(isVertical()).append('\n'); - buffer.append(" .autoGeneratedText = ").append(isAutoGeneratedText()).append('\n'); - buffer.append(" .generated = ").append(isGenerated()).append('\n'); - buffer.append(" .autoLabelDeleted = ").append(isAutoLabelDeleted()).append('\n'); - buffer.append(" .autoBackground = ").append(isAutoBackground()).append('\n'); - buffer.append(" .rotation = ").append(getRotation()).append('\n'); - buffer.append(" .showCategoryLabelAsPercentage = ").append(isShowCategoryLabelAsPercentage()).append('\n'); - buffer.append(" .showValueAsPercentage = ").append(isShowValueAsPercentage()).append('\n'); - buffer.append(" .showBubbleSizes = ").append(isShowBubbleSizes()).append('\n'); - buffer.append(" .showLabel = ").append(isShowLabel()).append('\n'); - buffer.append(" .indexOfColorValue = ") - .append("0x").append(HexDump.toHex( getIndexOfColorValue ())) - .append(" (").append( getIndexOfColorValue() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .options2 = ") - .append("0x").append(HexDump.toHex( getOptions2 ())) - .append(" (").append( getOptions2() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .dataLabelPlacement = ").append(getDataLabelPlacement()).append('\n'); - buffer.append(" .textRotation = ") - .append("0x").append(HexDump.toHex( getTextRotation ())) - .append(" (").append( getTextRotation() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - - buffer.append("[/TEXT]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeByte(field_1_horizontalAlignment); out.writeByte(field_2_verticalAlignment); @@ -711,4 +647,42 @@ public final class TextRecord extends St { return dataLabelPlacement.getShortValue(field_11_options2); } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.TEXT; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + final Map<String,Supplier<?>> m = new LinkedHashMap<>(); + m.put("horizontalAlignment", getEnumBitsAsString(this::getHorizontalAlignment, + new int[]{HORIZONTAL_ALIGNMENT_LEFT, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_BOTTOM, HORIZONTAL_ALIGNMENT_JUSTIFY}, + new String[]{"LEFT","CENTER","BOTTOM","JUSTIFY"})); + m.put("verticalAlignment", getEnumBitsAsString(this::getVerticalAlignment, + new int[]{VERTICAL_ALIGNMENT_TOP, VERTICAL_ALIGNMENT_CENTER, VERTICAL_ALIGNMENT_BOTTOM, VERTICAL_ALIGNMENT_JUSTIFY}, + new String[]{"TOP", "CENTER", "BOTTOM", "JUSTIFY"})); + m.put("displayMode", getEnumBitsAsString(this::getDisplayMode, + new int[]{DISPLAY_MODE_TRANSPARENT,DISPLAY_MODE_OPAQUE}, + new String[]{"TRANSPARENT","OPAQUE"})); + m.put("rgbColor", this::getRgbColor); + m.put("x", this::getX); + m.put("y", this::getY); + m.put("width", this::getWidth); + m.put("height", this::getHeight); + m.put("options1", getBitsAsString(this::getOptions1, + new BitField[]{autoColor, showKey, showValue, vertical, autoGeneratedText, generated, autoLabelDeleted, autoBackground, showCategoryLabelAsPercentage, showValueAsPercentage, showBubbleSizes, showLabel}, + new String[]{"AUTO_COLOR", "SHOW_KEY", "SHOW_VALUE", "VERTICAL", "AUTO_GENERATED_TEXT", "GENERATED", "AUTO_LABEL_DELETED", "AUTO_BACKGROUND", "SHOW_CATEGORY_LABEL_AS_PERCENTAGE", "SHOW_VALUE_AS_PERCENTAGE", "SHOW_BUBBLE_SIZES", "SHOW_LABEL"})); + m.put("rotation", getEnumBitsAsString(this::getRotation, + new int[]{ROTATION_NONE, ROTATION_TOP_TO_BOTTOM, ROTATION_ROTATED_90_DEGREES, ROTATION_ROTATED_90_DEGREES_CLOCKWISE}, + new String[]{"NONE", "TOP_TO_BOTTOM", "ROTATED_90_DEGREES", "ROTATED_90_DEGREES_CLOCKWISE"})); + m.put("options2", this::getOptions2); + m.put("dataLabelPlacement", getEnumBitsAsString(this::getDataLabelPlacement, + new int[]{DATA_LABEL_PLACEMENT_CHART_DEPENDENT, DATA_LABEL_PLACEMENT_OUTSIDE, DATA_LABEL_PLACEMENT_INSIDE, DATA_LABEL_PLACEMENT_CENTER, DATA_LABEL_PLACEMENT_AXIS, DATA_LABEL_PLACEMENT_ABOVE, DATA_LABEL_PLACEMENT_BELOW, DATA_LABEL_PLACEMENT_LEFT, DATA_LABEL_PLACEMENT_RIGHT, DATA_LABEL_PLACEMENT_AUTO, DATA_LABEL_PLACEMENT_USER_MOVED}, + new String[]{"CHART_DEPENDENT", "OUTSIDE", "INSIDE", "CENTER", "AXIS", "ABOVE", "BELOW", "LEFT", "RIGHT", "AUTO", "USER_MOVED"})); + m.put("indexOfColorValue", this::getIndexOfColorValue); + m.put("textRotation", this::getTextRotation); + + return Collections.unmodifiableMap(m); + } } Modified: poi/trunk/src/java/org/apache/poi/hssf/record/chart/TickRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/chart/TickRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/hssf/record/chart/TickRecord.java (original) +++ poi/trunk/src/java/org/apache/poi/hssf/record/chart/TickRecord.java Sun Apr 12 22:03:52 2020 @@ -17,11 +17,18 @@ package org.apache.poi.hssf.record.chart; +import static org.apache.poi.util.GenericRecordUtil.getBitsAsString; + +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.function.Supplier; + +import org.apache.poi.hssf.record.HSSFRecordTypes; import org.apache.poi.hssf.record.RecordInputStream; import org.apache.poi.hssf.record.StandardRecord; import org.apache.poi.util.BitField; import org.apache.poi.util.BitFieldFactory; -import org.apache.poi.util.HexDump; import org.apache.poi.util.LittleEndianOutput; import org.apache.poi.util.Removal; @@ -84,60 +91,6 @@ public final class TickRecord extends St field_12_zero5 = in.readShort(); } - public String toString() - { - StringBuilder buffer = new StringBuilder(); - - buffer.append("[TICK]\n"); - buffer.append(" .majorTickType = ") - .append("0x").append(HexDump.toHex( getMajorTickType ())) - .append(" (").append( getMajorTickType() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .minorTickType = ") - .append("0x").append(HexDump.toHex( getMinorTickType ())) - .append(" (").append( getMinorTickType() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .labelPosition = ") - .append("0x").append(HexDump.toHex( getLabelPosition ())) - .append(" (").append( getLabelPosition() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .background = ") - .append("0x").append(HexDump.toHex( getBackground ())) - .append(" (").append( getBackground() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .labelColorRgb = ") - .append("0x").append(HexDump.toHex( getLabelColorRgb ())) - .append(" (").append( getLabelColorRgb() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .zero1 = ") - .append("0x").append(HexDump.toHex( getZero1 ())) - .append(" (").append( getZero1() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .zero2 = ") - .append("0x").append(HexDump.toHex( getZero2 ())) - .append(" (").append( getZero2() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .options = ") - .append("0x").append(HexDump.toHex( getOptions ())) - .append(" (").append( getOptions() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .autoTextColor = ").append(isAutoTextColor()).append('\n'); - buffer.append(" .autoTextBackground = ").append(isAutoTextBackground()).append('\n'); - buffer.append(" .rotation = ").append(getRotation()).append('\n'); - buffer.append(" .autorotate = ").append(isAutorotate()).append('\n'); - buffer.append(" .tickColor = ") - .append("0x").append(HexDump.toHex( getTickColor ())) - .append(" (").append( getTickColor() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - buffer.append(" .zero3 = ") - .append("0x").append(HexDump.toHex( getZero3 ())) - .append(" (").append( getZero3() ).append(" )"); - buffer.append(System.getProperty("line.separator")); - - buffer.append("[/TICK]\n"); - return buffer.toString(); - } - public void serialize(LittleEndianOutput out) { out.writeByte(field_1_majorTickType); out.writeByte(field_2_minorTickType); @@ -163,7 +116,7 @@ public final class TickRecord extends St } @Override - @SuppressWarnings("squid:S2975") + @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"}) @Deprecated @Removal(version = "5.0.0") public TickRecord clone() { @@ -406,4 +359,28 @@ public final class TickRecord extends St { return autorotate.isSet(field_10_options); } + + @Override + public HSSFRecordTypes getGenericRecordType() { + return HSSFRecordTypes.TICK; + } + + @Override + public Map<String, Supplier<?>> getGenericProperties() { + final Map<String,Supplier<?>> m = new LinkedHashMap<>(); + m.put("majorTickType", this::getMajorTickType); + m.put("minorTickType", this::getMinorTickType); + m.put("labelPosition", this::getLabelPosition); + m.put("background", this::getBackground); + m.put("labelColorRgb", this::getLabelColorRgb); + m.put("zero1", this::getZero1); + m.put("zero2", this::getZero2); + m.put("options", getBitsAsString(this::getOptions, + new BitField[]{autoTextColor,autoTextBackground,autorotate}, + new String[]{"AUTO_TEXT_COLOR","AUTO_TEXT_BACKGROUND","AUTO_ROTATE"}) ); + m.put("rotation", this::getRotation); + m.put("tickColor", this::getTickColor); + m.put("zero3", this::getZero3); + return Collections.unmodifiableMap(m); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org For additional commands, e-mail: commits-h...@poi.apache.org