Author: kiwiwings
Date: Sun Apr 12 22:03:52 2020
New Revision: 1876433
URL: http://svn.apache.org/viewvc?rev=1876433&view=rev
Log:
#63745 - Add traversing and debugging interface to HSSF
This makes toString() implementations obsolete.
This also contains preparation for #64036 to (maybe) change the record factory
interface of HSSF.
Remove duplicated record SeriesToChartGroupRecord, which is a duplicate of
SeriesChartGroupIndexRecord.
Added:
poi/trunk/src/java/org/apache/poi/hssf/record/HSSFRecordTypes.java (with
props)
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ArrayInitialPtg.java
- copied, changed from r1876397,
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ArrayPtg.java
Removed:
poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesToChartGroupRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/TestSeriesToChartGroupRecord.java
Modified:
poi/site/src/documentation/content/xdocs/changes.xml
poi/trunk/src/java/org/apache/poi/common/usermodel/GenericRecord.java
poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java
poi/trunk/src/java/org/apache/poi/hssf/dev/BiffViewer.java
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/DummyRecordBase.java
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/LastCellOfRowDummyRecord.java
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingCellDummyRecord.java
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingRowDummyRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/AbstractEscherHolderRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ArrayRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/AutoFilterInfoRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/BOFRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/BackupRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/BlankRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/BookBoolRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/BoolErrRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/BottomMarginRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/BoundSheetRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CFHeader12Record.java
poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderBase.java
poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CFRule12Record.java
poi/trunk/src/java/org/apache/poi/hssf/record/CFRuleBase.java
poi/trunk/src/java/org/apache/poi/hssf/record/CFRuleRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CRNCountRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CRNRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CalcCountRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CalcModeRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CellRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CodepageRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ColumnInfoRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CommonObjectDataSubRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ContinueRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/CountryRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DBCellRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DConRefRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DSFRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DVALRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DVRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DateWindow1904Record.java
poi/trunk/src/java/org/apache/poi/hssf/record/DefaultColWidthRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DefaultRowHeightRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DeltaRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DimensionsRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DrawingGroupRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DrawingRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/DrawingRecordForBiffViewer.java
poi/trunk/src/java/org/apache/poi/hssf/record/DrawingSelectionRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/EOFRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/EndSubRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/EscherAggregate.java
poi/trunk/src/java/org/apache/poi/hssf/record/ExtSSTRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ExtendedFormatRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ExternSheetRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ExternalNameRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/FeatHdrRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/FeatRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/FilePassRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/FileSharingRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/FnGroupCountRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/FontRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/FooterRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/FormatRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/FormulaRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/FormulaSpecialCachedValue.java
poi/trunk/src/java/org/apache/poi/hssf/record/FtCblsSubRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/FtCfSubRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/FtPioGrbitSubRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/GridsetRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/GroupMarkerSubRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/GutsRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/HCenterRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/HeaderFooterBase.java
poi/trunk/src/java/org/apache/poi/hssf/record/HeaderFooterRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/HeaderRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/HideObjRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/HorizontalPageBreakRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/HyperlinkRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/IndexRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/InterfaceEndRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/InterfaceHdrRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/IterationRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/LabelRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/LabelSSTRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/LbsDataSubRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/LeftMarginRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/MMSRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/MergeCellsRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/MulBlankRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/MulRKRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/NameCommentRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/NameRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/NoteRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/NoteStructureSubRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/NumberRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ObjRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ObjectProtectRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/PageBreakRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/PaletteRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/PaneRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/PasswordRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/PasswordRev4Record.java
poi/trunk/src/java/org/apache/poi/hssf/record/PrecisionRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/PrintGridlinesRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/PrintHeadersRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/PrintSetupRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ProtectRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ProtectionRev4Record.java
poi/trunk/src/java/org/apache/poi/hssf/record/RKRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/RecalcIdRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/Record.java
poi/trunk/src/java/org/apache/poi/hssf/record/RecordFactory.java
poi/trunk/src/java/org/apache/poi/hssf/record/RefModeRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/RefreshAllRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/RightMarginRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/RowRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/SCLRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/SSTRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/SaveRecalcRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/ScenarioProtectRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/SelectionRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/SharedFormulaRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/StringRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/StyleRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/SubRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/SupBookRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/TabIdRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/TableRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/TableStylesRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/TextObjectRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/TopMarginRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/UncalcedRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/UnknownRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/UseSelFSRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/UserSViewBegin.java
poi/trunk/src/java/org/apache/poi/hssf/record/UserSViewEnd.java
poi/trunk/src/java/org/apache/poi/hssf/record/VCenterRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/VerticalPageBreakRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/WSBoolRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/WindowOneRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/WindowProtectRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/WindowTwoRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/WriteAccessRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/WriteProtectRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/AreaFormatRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/AreaRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/AxisLineFormatRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/AxisOptionsRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/AxisParentRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/AxisRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/AxisUsedRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/BarRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/BeginRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/CatLabRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/CategorySeriesAxisRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartEndBlockRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartEndObjectRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartFRTInfoRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartFormatRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartStartBlockRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartStartObjectRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/ChartTitleFormatRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/DatRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/DataFormatRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/DataLabelExtensionRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/DefaultDataLabelTextPropertiesRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/EndRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/FontBasisRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/FontIndexRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/FrameRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/LegendRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/LineFormatRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/LinkedDataRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/NumberFormatIndexRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/ObjectLinkRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/PlotAreaRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/PlotGrowthRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesChartGroupIndexRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesIndexRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesLabelsRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesListRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/SeriesTextRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/SheetPropertiesRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/TextRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/TickRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/UnitsRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/chart/ValueRangeRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/common/ExtRst.java
poi/trunk/src/java/org/apache/poi/hssf/record/common/FeatFormulaErr2.java
poi/trunk/src/java/org/apache/poi/hssf/record/common/FeatProtection.java
poi/trunk/src/java/org/apache/poi/hssf/record/common/FeatSmartTag.java
poi/trunk/src/java/org/apache/poi/hssf/record/common/FormatRun.java
poi/trunk/src/java/org/apache/poi/hssf/record/common/FtrHeader.java
poi/trunk/src/java/org/apache/poi/hssf/record/common/SharedFeature.java
poi/trunk/src/java/org/apache/poi/hssf/record/common/UnicodeString.java
poi/trunk/src/java/org/apache/poi/hssf/record/pivottable/DataItemRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/pivottable/ExtendedPivotTableViewFieldsRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/pivottable/PageItemRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/pivottable/StreamIDRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/pivottable/ViewDefinitionRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/pivottable/ViewFieldsRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/pivottable/ViewSourceRecord.java
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFChart.java
poi/trunk/src/java/org/apache/poi/poifs/crypt/Decryptor.java
poi/trunk/src/java/org/apache/poi/poifs/crypt/Encryptor.java
poi/trunk/src/java/org/apache/poi/ss/formula/Formula.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/AbstractFunctionPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Area2DPtgBase.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Area3DPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Area3DPxg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/AreaErrPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/AreaPtgBase.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ArrayPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/AttrPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/BoolPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Deleted3DPxg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/DeletedArea3DPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/DeletedRef3DPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ErrPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ExpPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/FuncVarPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/IntPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/MemAreaPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/MemErrPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/MemFuncPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/MissingArgPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NamePtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPxg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NumberPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/OperationPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ParenthesisPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ptg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref2DPtgBase.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref3DPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref3DPxg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/RefErrorPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/RefPtgBase.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ScalarConstantPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/StringPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/TblPtg.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/UnknownPtg.java
poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressBase.java
poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressList.java
poi/trunk/src/java/org/apache/poi/ss/util/CellReference.java
poi/trunk/src/java/org/apache/poi/util/BitField.java
poi/trunk/src/java/org/apache/poi/util/GenericRecordJsonWriter.java
poi/trunk/src/java/org/apache/poi/util/GenericRecordUtil.java
poi/trunk/src/java/org/apache/poi/util/IntMapper.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/AllChartRecordTests.java
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/ptg/TestArrayPtg.java
Modified: poi/site/src/documentation/content/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/changes.xml?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/site/src/documentation/content/xdocs/changes.xml (original)
+++ poi/site/src/documentation/content/xdocs/changes.xml Sun Apr 12 22:03:52
2020
@@ -89,6 +89,7 @@
<action type="fix" fixes-bug="github-170"
context="XWPF">XWPFTableCell does not process bodyElements when handle
paragraph</action>
<action type="fix" fixes-bug="github-171"
context="XWPF">XWPFNumbering.addAbstractNum will definitely throw an
exception</action>
<action type="fix" fixes-bug="64301" context="OPC">Allow
try-with-resources with OPCPackage.revert()</action>
+ <action type="fix" fixes-bug="63745" context="HSSF">Add traversing
and debugging interface to HSSF</action>
</actions>
</release>
Modified: poi/trunk/src/java/org/apache/poi/common/usermodel/GenericRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/common/usermodel/GenericRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/common/usermodel/GenericRecord.java
(original)
+++ poi/trunk/src/java/org/apache/poi/common/usermodel/GenericRecord.java Sun
Apr 12 22:03:52 2020
@@ -24,7 +24,7 @@ import java.util.Map;
import java.util.function.Supplier;
public interface GenericRecord {
- default Enum getGenericRecordType() { return null; }
+ default Enum<?> getGenericRecordType() { return null; }
Map<String, Supplier<?>> getGenericProperties();
Modified: poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java (original)
+++ poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java Sun Apr 12 22:03:52 2020
@@ -20,9 +20,13 @@ package org.apache.poi.hpsf;
import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.Locale;
+import java.util.Map;
import java.util.UUID;
+import java.util.function.Supplier;
import org.apache.poi.common.Duplicatable;
+import org.apache.poi.common.usermodel.GenericRecord;
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
@@ -34,7 +38,7 @@ import org.apache.poi.util.LittleEndianO
*
* The ClassID (or CLSID) is a UUID - see RFC 4122
*/
-public class ClassID implements Duplicatable {
+public class ClassID implements Duplicatable, GenericRecord {
/** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
public static final ClassID OLE10_PACKAGE =
ClassIDPredefined.OLE_V1_PACKAGE.getClassID();
/** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
@@ -344,4 +348,9 @@ public class ClassID implements Duplicat
public ClassID copy() {
return new ClassID(this);
}
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties("uuid", this::toString);
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/dev/BiffViewer.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/dev/BiffViewer.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/dev/BiffViewer.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/dev/BiffViewer.java Sun Apr 12
22:03:52 2020
@@ -139,7 +139,7 @@ public final class BiffViewer {
case CFHeader12Record.sid: return new CFHeader12Record(in);
case CFRuleRecord.sid: return new CFRuleRecord(in);
case CFRule12Record.sid: return new CFRule12Record(in);
- // TODO Add CF Ex, and remove from UnknownRecord
+ // TODO Add CF Ex, and remove from UnknownRecord
case CalcCountRecord.sid: return new CalcCountRecord(in);
case CalcModeRecord.sid: return new CalcModeRecord(in);
case CategorySeriesAxisRecord.sid:return new
CategorySeriesAxisRecord(in);
@@ -236,7 +236,7 @@ public final class BiffViewer {
case SeriesListRecord.sid: return new SeriesListRecord(in);
case SeriesRecord.sid: return new SeriesRecord(in);
case SeriesTextRecord.sid: return new SeriesTextRecord(in);
- case SeriesToChartGroupRecord.sid:return new
SeriesToChartGroupRecord(in);
+ case SeriesChartGroupIndexRecord.sid:return new
SeriesChartGroupIndexRecord(in);
case SharedFormulaRecord.sid: return new
SharedFormulaRecord(in);
case SheetPropertiesRecord.sid: return new
SheetPropertiesRecord(in);
case StringRecord.sid: return new StringRecord(in);
@@ -383,8 +383,8 @@ public final class BiffViewer {
* <tr><td>--escher</td><td>turn on deserialization of escher records
(default is off)</td></tr>
* <tr><td>--noheader</td><td>do not print record header (default is
on)</td></tr>
* </table>
- *
- * @param args the command line arguments
+ *
+ * @param args the command line arguments
*
* @throws IOException if the file doesn't exist or contained errors
* @throws CommandParseException if the command line contained errors
@@ -676,7 +676,7 @@ public final class BiffViewer {
}
idx = arraycopy(NEW_LINE_CHARS, buf, idx);
-
+
w.write(buf, 0, idx);
} catch (IOException e) {
throw new RuntimeException(e);
@@ -690,7 +690,7 @@ public final class BiffViewer {
}
return idx;
}
-
+
private static char getPrintableChar(byte b) {
char ib = (char) (b & 0x00FF);
if (ib < 32 || ib > 126) {
Modified:
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/DummyRecordBase.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/DummyRecordBase.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
---
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/DummyRecordBase.java
(original)
+++
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/DummyRecordBase.java
Sun Apr 12 22:03:52 2020
@@ -35,4 +35,6 @@ abstract class DummyRecordBase extends R
public final int getRecordSize() {
throw new RecordFormatException("Cannot serialize a dummy
record");
}
+
+
}
Modified:
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/LastCellOfRowDummyRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/LastCellOfRowDummyRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
---
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/LastCellOfRowDummyRecord.java
(original)
+++
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/LastCellOfRowDummyRecord.java
Sun Apr 12 22:03:52 2020
@@ -18,6 +18,12 @@
package org.apache.poi.hssf.eventusermodel.dummyrecord;
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.hssf.record.HSSFRecordTypes;
+import org.apache.poi.util.GenericRecordUtil;
+
/**
* A dummy record to indicate that we've now had the last
* cell record for this row.
@@ -55,12 +61,20 @@ public final class LastCellOfRowDummyRec
}
@Override
- public String toString() {
- return "End-of-Row for Row=" + row + " at Column=" +
lastColumnNumber;
+ public LastCellOfRowDummyRecord copy() {
+ return this;
}
@Override
- public LastCellOfRowDummyRecord copy() {
- return this;
+ public HSSFRecordTypes getGenericRecordType() {
+ return null;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "row", this::getRow,
+ "lastColumnNumber", this::getLastColumnNumber
+ );
}
}
Modified:
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingCellDummyRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingCellDummyRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
---
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingCellDummyRecord.java
(original)
+++
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingCellDummyRecord.java
Sun Apr 12 22:03:52 2020
@@ -18,6 +18,12 @@
package org.apache.poi.hssf.eventusermodel.dummyrecord;
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.hssf.record.HSSFRecordTypes;
+import org.apache.poi.util.GenericRecordUtil;
+
/**
* A dummy record for when we're missing a cell in a row,
* but still want to trigger something
@@ -37,4 +43,17 @@ public final class MissingCellDummyRecor
public MissingCellDummyRecord copy() {
return this;
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return null;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "row", this::getRow,
+ "column", this::getColumn
+ );
+ }
}
Modified:
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingRowDummyRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingRowDummyRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
---
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingRowDummyRecord.java
(original)
+++
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingRowDummyRecord.java
Sun Apr 12 22:03:52 2020
@@ -18,6 +18,12 @@
package org.apache.poi.hssf.eventusermodel.dummyrecord;
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.hssf.record.HSSFRecordTypes;
+import org.apache.poi.util.GenericRecordUtil;
+
/**
* A dummy record for when we're missing a row, but still
* want to trigger something
@@ -36,4 +42,16 @@ public final class MissingRowDummyRecord
public MissingRowDummyRecord copy() {
return this;
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return null;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "rowNumber", this::getRowNumber
+ );
+ }
}
Modified:
poi/trunk/src/java/org/apache/poi/hssf/record/AbstractEscherHolderRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/AbstractEscherHolderRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
---
poi/trunk/src/java/org/apache/poi/hssf/record/AbstractEscherHolderRecord.java
(original)
+++
poi/trunk/src/java/org/apache/poi/hssf/record/AbstractEscherHolderRecord.java
Sun Apr 12 22:03:52 2020
@@ -82,23 +82,6 @@ public abstract class AbstractEscherHold
}
}
- @Override
- public String toString()
- {
- StringBuilder buffer = new StringBuilder();
-
- final String nl = System.getProperty("line.separator");
- buffer.append('[' + getRecordName() + ']' + nl);
- if (escherRecords.size() == 0)
- buffer.append("No Escher Records Decoded" + nl);
- for (EscherRecord r : escherRecords) {
- buffer.append(r);
- }
- buffer.append("[/" + getRecordName() + ']' + nl);
-
- return buffer.toString();
- }
-
protected abstract String getRecordName();
@Override
@@ -268,4 +251,9 @@ public abstract class AbstractEscherHold
convertToEscherRecords(0, rawData.length, rawData );
}
}
+
+ @Override
+ public List<EscherRecord> getGenericChildren() {
+ return escherRecords;
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/ArrayRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/ArrayRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/ArrayRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/ArrayRecord.java Sun Apr 12
22:03:52 2020
@@ -17,10 +17,13 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
import org.apache.poi.hssf.util.CellRangeAddress8Bit;
import org.apache.poi.ss.formula.Formula;
import org.apache.poi.ss.formula.ptg.Ptg;
-import org.apache.poi.util.HexDump;
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.Removal;
@@ -86,24 +89,8 @@ public final class ArrayRecord extends S
return sid;
}
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append(getClass().getName()).append(" [ARRAY]\n");
- sb.append(" range=").append(getRange()).append("\n");
- sb.append("
options=").append(HexDump.shortToHex(_options)).append("\n");
- sb.append("
notUsed=").append(HexDump.intToHex(_field3notUsed)).append("\n");
- sb.append(" formula:").append("\n");
- Ptg[] ptgs = _formula.getTokens();
- for (int i = 0; i < ptgs.length; i++) {
- Ptg ptg = ptgs[i];
- sb.append(ptg).append(ptg.getRVAType()).append("\n");
- }
- sb.append("]");
- return sb.toString();
- }
-
@Override
- @SuppressWarnings("squid:S2975")
+ @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"})
@Deprecated
@Removal(version = "5.0.0")
public ArrayRecord clone() {
@@ -114,4 +101,19 @@ public final class ArrayRecord extends S
public ArrayRecord copy() {
return new ArrayRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.ARRAY;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "range", this::getRange,
+ "options", () -> _options,
+ "notUsed", () -> _field3notUsed,
+ "formula", () -> _formula
+ );
+ }
}
Modified:
poi/trunk/src/java/org/apache/poi/hssf/record/AutoFilterInfoRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/AutoFilterInfoRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/AutoFilterInfoRecord.java
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/AutoFilterInfoRecord.java Sun
Apr 12 22:03:52 2020
@@ -19,6 +19,10 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.Removal;
@@ -67,17 +71,6 @@ public final class AutoFilterInfoRecord
return _cEntries;
}
- public String toString()
- {
- StringBuilder buffer = new StringBuilder();
-
- buffer.append("[AUTOFILTERINFO]\n");
- buffer.append(" .numEntries = ")
- .append(_cEntries).append("\n");
- buffer.append("[/AUTOFILTERINFO]\n");
- return buffer.toString();
- }
-
public void serialize(LittleEndianOutput out) {
out.writeShort(_cEntries);
}
@@ -92,7 +85,7 @@ public final class AutoFilterInfoRecord
}
@Override
- @SuppressWarnings("squid:S2975")
+ @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"})
@Deprecated
@Removal(version = "5.0.0")
public AutoFilterInfoRecord clone() {
@@ -103,4 +96,16 @@ public final class AutoFilterInfoRecord
public AutoFilterInfoRecord copy() {
return new AutoFilterInfoRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.AUTO_FILTER_INFO;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "numEntries", this::getNumEntries
+ );
+ }
}
\ No newline at end of file
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/BOFRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/BOFRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/BOFRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/BOFRecord.java Sun Apr 12
22:03:52 2020
@@ -17,7 +17,11 @@
package org.apache.poi.hssf.record;
-import org.apache.poi.util.HexDump;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.function.Supplier;
+
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.Removal;
@@ -229,21 +233,6 @@ public final class BOFRecord extends Sta
return field_6_rversion;
}
- public String toString() {
- StringBuilder buffer = new StringBuilder();
-
- buffer.append("[BOF RECORD]\n");
- buffer.append(" .version =
").append(HexDump.shortToHex(getVersion())).append("\n");
- buffer.append(" .type =
").append(HexDump.shortToHex(getType()));
- buffer.append(" (").append(getTypeName()).append(")").append("\n");
- buffer.append(" .build =
").append(HexDump.shortToHex(getBuild())).append("\n");
- buffer.append(" .buildyear= ").append(getBuildYear()).append("\n");
- buffer.append(" .history =
").append(HexDump.intToHex(getHistoryBitMask())).append("\n");
- buffer.append(" .reqver =
").append(HexDump.intToHex(getRequiredVersion())).append("\n");
- buffer.append("[/BOF RECORD]\n");
- return buffer.toString();
- }
-
private String getTypeName() {
switch(field_2_type) {
case TYPE_CHART: return "chart";
@@ -274,7 +263,7 @@ public final class BOFRecord extends Sta
}
@Override
- @SuppressWarnings("squid:S2975")
+ @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"})
@Deprecated
@Removal(version = "5.0.0")
public BOFRecord clone() {
@@ -285,4 +274,22 @@ public final class BOFRecord extends Sta
public BOFRecord copy() {
return new BOFRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.BOF;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ final Map<String,Supplier<?>> m = new LinkedHashMap<>();
+ m.put("version", this::getVersion);
+ m.put("type", this::getType);
+ m.put("typeName", this::getTypeName);
+ m.put("build", this::getBuild);
+ m.put("buildYear", this::getBuildYear);
+ m.put("history", this::getHistoryBitMask);
+ m.put("requiredVersion", this::getRequiredVersion);
+ return Collections.unmodifiableMap(m);
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/BackupRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/BackupRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/BackupRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/BackupRecord.java Sun Apr 12
22:03:52 2020
@@ -19,6 +19,10 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -65,17 +69,6 @@ public final class BackupRecord extends
return field_1_backup;
}
- public String toString()
- {
- StringBuilder buffer = new StringBuilder();
-
- buffer.append("[BACKUP]\n");
- buffer.append(" .backup = ")
- .append(Integer.toHexString(getBackup())).append("\n");
- buffer.append("[/BACKUP]\n");
- return buffer.toString();
- }
-
public void serialize(LittleEndianOutput out) {
out.writeShort(getBackup());
}
@@ -93,4 +86,16 @@ public final class BackupRecord extends
public BackupRecord copy() {
return new BackupRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.BACKUP;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "backup", this::getBackup
+ );
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/BlankRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/BlankRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/BlankRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/BlankRecord.java Sun Apr 12
22:03:52 2020
@@ -17,7 +17,10 @@
package org.apache.poi.hssf.record;
-import org.apache.poi.util.HexDump;
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.Removal;
@@ -119,18 +122,6 @@ public final class BlankRecord extends S
return sid;
}
- public String toString()
- {
- StringBuilder sb = new StringBuilder();
-
- sb.append("[BLANK]\n");
- sb.append(" row=
").append(HexDump.shortToHex(getRow())).append("\n");
- sb.append(" col=
").append(HexDump.shortToHex(getColumn())).append("\n");
- sb.append(" xf =
").append(HexDump.shortToHex(getXFIndex())).append("\n");
- sb.append("[/BLANK]\n");
- return sb.toString();
- }
-
public void serialize(LittleEndianOutput out) {
out.writeShort(getRow());
out.writeShort(getColumn());
@@ -142,7 +133,7 @@ public final class BlankRecord extends S
}
@Override
- @SuppressWarnings("squid:S2975")
+ @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"})
@Deprecated
@Removal(version = "5.0.0")
public BlankRecord clone() {
@@ -153,4 +144,18 @@ public final class BlankRecord extends S
public BlankRecord copy() {
return new BlankRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.BLANK;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "row", this::getRow,
+ "col", this::getColumn,
+ "xfIndex", this::getXFIndex
+ );
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/BookBoolRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/BookBoolRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/BookBoolRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/BookBoolRecord.java Sun Apr
12 22:03:52 2020
@@ -19,6 +19,10 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -65,17 +69,6 @@ public final class BookBoolRecord extend
return field_1_save_link_values;
}
- public String toString()
- {
- StringBuilder buffer = new StringBuilder();
-
- buffer.append("[BOOKBOOL]\n");
- buffer.append(" .savelinkvalues = ")
- .append(Integer.toHexString(getSaveLinkValues())).append("\n");
- buffer.append("[/BOOKBOOL]\n");
- return buffer.toString();
- }
-
public void serialize(LittleEndianOutput out) {
out.writeShort(field_1_save_link_values);
}
@@ -93,4 +86,16 @@ public final class BookBoolRecord extend
public BookBoolRecord copy() {
return new BookBoolRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.BOOK_BOOL;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "saveLinkValues", this::getSaveLinkValues
+ );
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/BoolErrRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/BoolErrRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/BoolErrRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/BoolErrRecord.java Sun Apr 12
22:03:52 2020
@@ -17,8 +17,11 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
import org.apache.poi.ss.usermodel.FormulaError;
-import org.apache.poi.util.HexDump;
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.RecordFormatException;
import org.apache.poi.util.Removal;
@@ -159,17 +162,7 @@ public final class BoolErrRecord extends
protected String getRecordName() {
return "BOOLERR";
}
- @Override
- protected void appendValueText(StringBuilder sb) {
- if (isBoolean()) {
- sb.append(" .boolVal = ");
- sb.append(getBooleanValue());
- } else {
- sb.append(" .errCode = ");
-
sb.append(FormulaError.forInt(getErrorValue()).getString());
- sb.append("
(").append(HexDump.byteToHex(getErrorValue())).append(")");
- }
- }
+
@Override
protected void serializeValue(LittleEndianOutput out) {
out.writeByte(_value);
@@ -186,7 +179,7 @@ public final class BoolErrRecord extends
}
@Override
- @SuppressWarnings("squid:S2975")
+ @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"})
@Deprecated
@Removal(version = "5.0.0")
public BoolErrRecord clone() {
@@ -197,4 +190,21 @@ public final class BoolErrRecord extends
public BoolErrRecord copy() {
return new BoolErrRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.BOOL_ERR;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "base", super::getGenericProperties,
+ "isBoolean", this::isBoolean,
+ "booleanVal", this::getBooleanValue,
+ "isError", this::isError,
+ "errorVal", this::getErrorValue,
+ "errorTxt", () -> isError() ?
FormulaError.forInt(getErrorValue()).getString() : null
+ );
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/BottomMarginRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/BottomMarginRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/BottomMarginRecord.java
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/BottomMarginRecord.java Sun
Apr 12 22:03:52 2020
@@ -19,6 +19,10 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.Removal;
@@ -41,16 +45,6 @@ public final class BottomMarginRecord ex
field_1_margin = in.readDouble();
}
- public String toString()
- {
- StringBuilder buffer = new StringBuilder();
- buffer.append( "[BottomMargin]\n" );
- buffer.append( " .margin = " )
- .append( " (" ).append( getMargin() ).append( " )\n" );
- buffer.append( "[/BottomMargin]\n" );
- return buffer.toString();
- }
-
public void serialize(LittleEndianOutput out) {
out.writeDouble(field_1_margin);
}
@@ -81,7 +75,7 @@ public final class BottomMarginRecord ex
}
@Override
- @SuppressWarnings("squid:S2975")
+ @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"})
@Deprecated
@Removal(version = "5.0.0")
public BottomMarginRecord clone() {
@@ -92,4 +86,16 @@ public final class BottomMarginRecord ex
public BottomMarginRecord copy() {
return new BottomMarginRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.BOTTOM_MARGIN;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "margin", this::getMargin
+ );
+ }
}
\ No newline at end of file
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/BoundSheetRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/BoundSheetRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/BoundSheetRecord.java
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/BoundSheetRecord.java Sun Apr
12 22:03:52 2020
@@ -19,11 +19,13 @@ package org.apache.poi.hssf.record;
import java.util.Arrays;
import java.util.List;
+import java.util.Map;
+import java.util.function.Supplier;
import org.apache.poi.ss.util.WorkbookUtil;
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.LittleEndian;
import org.apache.poi.util.LittleEndianConsts;
import org.apache.poi.util.LittleEndianOutput;
@@ -125,18 +127,6 @@ public final class BoundSheetRecord exte
return field_5_sheetname;
}
- public String toString() {
- StringBuilder buffer = new StringBuilder();
-
- buffer.append("[BOUNDSHEET]\n");
- buffer.append(" .bof =
").append(HexDump.intToHex(getPositionOfBof())).append("\n");
- buffer.append(" .options =
").append(HexDump.shortToHex(field_2_option_flags)).append("\n");
- buffer.append(" .unicodeflag=
").append(HexDump.byteToHex(field_4_isMultibyteUnicode)).append("\n");
- buffer.append(" .sheetname =
").append(field_5_sheetname).append("\n");
- buffer.append("[/BOUNDSHEET]\n");
- return buffer.toString();
- }
-
protected int getDataSize() {
return 8 + field_5_sheetname.length() * (isMultibyte() ? 2 : 1);
}
@@ -219,4 +209,21 @@ public final class BoundSheetRecord exte
public BoundSheetRecord copy() {
return new BoundSheetRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.BOUND_SHEET;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "bof", this::getPositionOfBof,
+ "optionFlags", () -> field_2_option_flags,
+ "multiByte", this::isMultibyte,
+ "sheetName", this::getSheetname,
+ "hidden", this::isHidden,
+ "veryHidden", this::isVeryHidden
+ );
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CFHeader12Record.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CFHeader12Record.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/CFHeader12Record.java
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CFHeader12Record.java Sun Apr
12 22:03:52 2020
@@ -17,9 +17,13 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
import org.apache.poi.hssf.record.common.FtrHeader;
import org.apache.poi.hssf.record.common.FutureRecord;
import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.Removal;
@@ -97,4 +101,17 @@ public final class CFHeader12Record exte
public CFHeader12Record copy() {
return new CFHeader12Record(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.CF_HEADER_12;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "base", super::getGenericProperties,
+ "futureHeader", this::getFutureHeader
+ );
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderBase.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderBase.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderBase.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderBase.java Sun Apr 12
22:03:52 2020
@@ -17,9 +17,13 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellRangeAddressList;
import org.apache.poi.ss.util.CellRangeUtil;
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.Removal;
@@ -129,23 +133,6 @@ public abstract class CFHeaderBase exten
protected abstract String getRecordName();
- public String toString() {
- StringBuilder buffer = new StringBuilder();
-
- buffer.append("[").append(getRecordName()).append("]\n");
- buffer.append("\t.numCF =
").append(getNumberOfConditionalFormats()).append("\n");
- buffer.append("\t.needRecalc =
").append(getNeedRecalculation()).append("\n");
- buffer.append("\t.id = ").append(getID()).append("\n");
- buffer.append("\t.enclosingCellRange=
").append(getEnclosingCellRange()).append("\n");
- buffer.append("\t.cfranges=[");
- for( int i=0; i<field_4_cell_ranges.countRanges(); i++) {
-
buffer.append(i==0?"":",").append(field_4_cell_ranges.getCellRangeAddress(i));
- }
- buffer.append("]\n");
- buffer.append("[/").append(getRecordName()).append("]\n");
- return buffer.toString();
- }
-
protected int getDataSize() {
return 4 // 2 short fields
+ CellRangeAddress.ENCODED_SIZE
@@ -167,4 +154,15 @@ public abstract class CFHeaderBase exten
@Override
public abstract CFHeaderBase copy();
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "id", this::getID,
+ "numCF", this::getNumberOfConditionalFormats,
+ "needRecalculationAndId", this::getNeedRecalculation,
+ "enclosingCellRange", this::getEnclosingCellRange,
+ "cfRanges", this::getCellRanges
+ );
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CFHeaderRecord.java Sun Apr
12 22:03:52 2020
@@ -64,4 +64,9 @@ public final class CFHeaderRecord extend
public CFHeaderRecord copy() {
return new CFHeaderRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.CF_HEADER;
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CFRule12Record.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CFRule12Record.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/CFRule12Record.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CFRule12Record.java Sun Apr
12 22:03:52 2020
@@ -17,7 +17,10 @@
package org.apache.poi.hssf.record;
-import java.util.Arrays;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.function.Supplier;
import org.apache.poi.hssf.record.cf.ColorGradientFormatting;
import org.apache.poi.hssf.record.cf.ColorGradientThreshold;
@@ -35,7 +38,6 @@ import org.apache.poi.ss.formula.ptg.Ptg
import org.apache.poi.ss.usermodel.ConditionalFormattingThreshold.RangeType;
import org.apache.poi.ss.usermodel.IconMultiStateFormatting.IconSet;
import org.apache.poi.ss.util.CellRangeAddress;
-import org.apache.poi.util.HexDump;
import org.apache.poi.util.IOUtils;
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.POILogger;
@@ -447,43 +449,6 @@ public final class CFRule12Record extend
return len;
}
- public String toString() {
- StringBuilder buffer = new StringBuilder();
- buffer.append("[CFRULE12]\n");
- buffer.append("
.condition_type=").append(getConditionType()).append("\n");
- buffer.append(" .dxfn12_length
=0x").append(Integer.toHexString(ext_formatting_length)).append("\n");
- buffer.append(" .option_flags
=0x").append(Integer.toHexString(getOptions())).append("\n");
- if (containsFontFormattingBlock()) {
- buffer.append(_fontFormatting).append("\n");
- }
- if (containsBorderFormattingBlock()) {
- buffer.append(_borderFormatting).append("\n");
- }
- if (containsPatternFormattingBlock()) {
- buffer.append(_patternFormatting).append("\n");
- }
- buffer.append("
.dxfn12_ext=").append(HexDump.toHex(ext_formatting_data)).append("\n");
- buffer.append(" .formula_1
=").append(Arrays.toString(getFormula1().getTokens())).append("\n");
- buffer.append(" .formula_2
=").append(Arrays.toString(getFormula2().getTokens())).append("\n");
- buffer.append(" .formula_S
=").append(Arrays.toString(formula_scale.getTokens())).append("\n");
- buffer.append(" .ext_opts =").append(ext_opts).append("\n");
- buffer.append(" .priority =").append(priority).append("\n");
- buffer.append(" .template_type
=").append(template_type).append("\n");
- buffer.append("
.template_params=").append(HexDump.toHex(template_params)).append("\n");
- buffer.append(" .filter_data
=").append(HexDump.toHex(filter_data)).append("\n");
- if (color_gradient != null) {
- buffer.append(color_gradient);
- }
- if (multistate != null) {
- buffer.append(multistate);
- }
- if (data_bar != null) {
- buffer.append(data_bar);
- }
- buffer.append("[/CFRULE12]\n");
- return buffer.toString();
- }
-
@Override
@SuppressWarnings("squid:S2975")
@Deprecated
@@ -506,4 +471,27 @@ public final class CFRule12Record extend
public CellRangeAddress getAssociatedRange() {
return futureHeader.getAssociatedRange();
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.CF_RULE_12;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ final Map<String, Supplier<?>> m = new
LinkedHashMap<>(super.getGenericProperties());
+ m.put("dxFn12Length", () -> ext_formatting_length);
+ m.put("futureHeader", this::getFutureHeader);
+ m.put("dxFn12Ext", () -> ext_formatting_data);
+ m.put("formulaScale", this::getParsedExpressionScale);
+ m.put("extOptions", () -> ext_opts);
+ m.put("priority", this::getPriority);
+ m.put("templateType", () -> template_type);
+ m.put("templateParams", () -> template_params);
+ m.put("filterData", () -> filter_data);
+ m.put("dataBar", this::getDataBarFormatting);
+ m.put("multiState", this::getMultiStateFormatting);
+ m.put("colorGradient", this::getColorGradientFormatting);
+ return Collections.unmodifiableMap(m);
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CFRuleBase.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CFRuleBase.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/CFRuleBase.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CFRuleBase.java Sun Apr 12
22:03:52 2020
@@ -17,6 +17,9 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
import org.apache.poi.hssf.model.HSSFFormulaParser;
import org.apache.poi.hssf.record.cf.BorderFormatting;
import org.apache.poi.hssf.record.cf.FontFormatting;
@@ -27,6 +30,7 @@ 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.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
@@ -466,4 +470,19 @@ public abstract class CFRuleBase extends
@Override
public abstract CFRuleBase copy();
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "conditionType", this::getConditionType,
+ "comparisonOperation", this::getComparisonOperation,
+ "formattingOptions", this::getOptions,
+ "formattingNotUsed", () -> formatting_not_used,
+ "fontFormatting", this::getFontFormatting,
+ "borderFormatting", this::getBorderFormatting,
+ "patternFormatting", this::getPatternFormatting,
+ "formula1", this::getFormula1,
+ "formula2", this::getFormula2
+ );
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CFRuleRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CFRuleRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/CFRuleRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CFRuleRecord.java Sun Apr 12
22:03:52 2020
@@ -17,8 +17,6 @@
package org.apache.poi.hssf.record;
-import java.util.Arrays;
-
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.ss.formula.Formula;
import org.apache.poi.ss.formula.ptg.Ptg;
@@ -39,15 +37,11 @@ public final class CFRuleRecord extends
super(other);
}
- private CFRuleRecord(byte conditionType, byte comparisonOperation) {
- super(conditionType, comparisonOperation);
- setDefaults();
- }
-
private CFRuleRecord(byte conditionType, byte comparisonOperation, Ptg[]
formula1, Ptg[] formula2) {
super(conditionType, comparisonOperation, formula1, formula2);
setDefaults();
}
+
private void setDefaults() {
// Set modification flags to 1: by default options are not modified
formatting_options = modificationBits.setValue(formatting_options, -1);
@@ -139,27 +133,6 @@ public final class CFRuleRecord extends
}
@Override
- public String toString() {
- StringBuilder buffer = new StringBuilder();
- buffer.append("[CFRULE]\n");
- buffer.append(" .condition_type
=").append(getConditionType()).append("\n");
- buffer.append(" OPTION
FLAGS=0x").append(Integer.toHexString(getOptions())).append("\n");
- if (containsFontFormattingBlock()) {
- buffer.append(_fontFormatting).append("\n");
- }
- if (containsBorderFormattingBlock()) {
- buffer.append(_borderFormatting).append("\n");
- }
- if (containsPatternFormattingBlock()) {
- buffer.append(_patternFormatting).append("\n");
- }
- buffer.append(" Formula 1
=").append(Arrays.toString(getFormula1().getTokens())).append("\n");
- buffer.append(" Formula 2
=").append(Arrays.toString(getFormula2().getTokens())).append("\n");
- buffer.append("[/CFRULE]\n");
- return buffer.toString();
- }
-
- @Override
@SuppressWarnings("squid:S2975")
@Deprecated
@Removal(version = "5.0.0")
@@ -171,4 +144,9 @@ public final class CFRuleRecord extends
public CFRuleRecord copy() {
return new CFRuleRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.CF_RULE;
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CRNCountRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CRNCountRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/CRNCountRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CRNCountRecord.java Sun Apr
12 22:03:52 2020
@@ -17,6 +17,10 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
/**
* XCT - CRN Count
@@ -29,10 +33,6 @@ public final class CRNCountRecord extend
private int field_1_number_crn_records;
private int field_2_sheet_table_index;
- private CRNCountRecord() {
- // incomplete code
- }
-
public CRNCountRecord(CRNCountRecord other) {
super(other);
field_1_number_crn_records = other.field_1_number_crn_records;
@@ -53,15 +53,6 @@ public final class CRNCountRecord extend
return field_1_number_crn_records;
}
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append(getClass().getName()).append(" [XCT");
- sb.append(" nCRNs=").append(field_1_number_crn_records);
- sb.append(" sheetIx=").append(field_2_sheet_table_index);
- sb.append("]");
- return sb.toString();
- }
-
public void serialize(LittleEndianOutput out) {
out.writeShort((short)field_1_number_crn_records);
out.writeShort((short)field_2_sheet_table_index);
@@ -81,4 +72,17 @@ public final class CRNCountRecord extend
public CRNCountRecord copy() {
return new CRNCountRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.CRN_COUNT;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "numberOfCRNs", this::getNumberOfCRNs,
+ "sheetTableIndex", () -> field_2_sheet_table_index
+ );
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CRNRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CRNRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/CRNRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CRNRecord.java Sun Apr 12
22:03:52 2020
@@ -17,7 +17,11 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
import org.apache.poi.ss.formula.constant.ConstantValueParser;
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -31,10 +35,6 @@ public final class CRNRecord extends Sta
private int field_3_row_index;
private Object[] field_4_constant_values;
- private CRNRecord() {
- // incomplete code
- }
-
public CRNRecord(CRNRecord other) {
super(other);
field_1_last_column_index = other.field_1_last_column_index;
@@ -57,15 +57,6 @@ public final class CRNRecord extends Sta
return field_1_last_column_index;
}
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append(getClass().getName()).append(" [CRN");
- sb.append(" rowIx=").append(field_3_row_index);
- sb.append(" firstColIx=").append(field_2_first_column_index);
- sb.append(" lastColIx=").append(field_1_last_column_index);
- sb.append("]");
- return sb.toString();
- }
protected int getDataSize() {
return 4 +
ConstantValueParser.getEncodedSize(field_4_constant_values);
}
@@ -88,4 +79,19 @@ public final class CRNRecord extends Sta
public CRNRecord copy() {
return new CRNRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.CRN;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "row", () -> field_3_row_index,
+ "firstColumn", () -> field_2_first_column_index,
+ "lastColumn", () -> field_1_last_column_index,
+ "constantValues", () -> field_4_constant_values
+ );
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CalcCountRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CalcCountRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/CalcCountRecord.java
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CalcCountRecord.java Sun Apr
12 22:03:52 2020
@@ -19,6 +19,10 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.Removal;
@@ -69,17 +73,6 @@ public final class CalcCountRecord exten
return field_1_iterations;
}
- public String toString()
- {
- StringBuilder buffer = new StringBuilder();
-
- buffer.append("[CALCCOUNT]\n");
- buffer.append(" .iterations = ")
- .append(Integer.toHexString(getIterations())).append("\n");
- buffer.append("[/CALCCOUNT]\n");
- return buffer.toString();
- }
-
public void serialize(LittleEndianOutput out) {
out.writeShort(getIterations());
}
@@ -94,7 +87,7 @@ public final class CalcCountRecord exten
}
@Override
- @SuppressWarnings("squid:S2975")
+ @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"})
@Deprecated
@Removal(version = "5.0.0")
public CalcCountRecord clone() {
@@ -105,4 +98,16 @@ public final class CalcCountRecord exten
public CalcCountRecord copy() {
return new CalcCountRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.CALC_COUNT;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "iterations", this::getIterations
+ );
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CalcModeRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CalcModeRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/CalcModeRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CalcModeRecord.java Sun Apr
12 22:03:52 2020
@@ -19,6 +19,10 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.Removal;
@@ -84,17 +88,6 @@ public final class CalcModeRecord extend
return field_1_calcmode;
}
- public String toString()
- {
- StringBuilder buffer = new StringBuilder();
-
- buffer.append("[CALCMODE]\n");
- buffer.append(" .calcmode = ")
- .append(Integer.toHexString(getCalcMode())).append("\n");
- buffer.append("[/CALCMODE]\n");
- return buffer.toString();
- }
-
public void serialize(LittleEndianOutput out) {
out.writeShort(getCalcMode());
}
@@ -109,7 +102,7 @@ public final class CalcModeRecord extend
}
@Override
- @SuppressWarnings("squid:S2975")
+ @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"})
@Deprecated
@Removal(version = "5.0.0")
public CalcModeRecord clone() {
@@ -120,4 +113,16 @@ public final class CalcModeRecord extend
public CalcModeRecord copy() {
return new CalcModeRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.CALC_MODE;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "calcMode", this::getCalcMode
+ );
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CellRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CellRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/CellRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CellRecord.java Sun Apr 12
22:03:52 2020
@@ -17,7 +17,10 @@
package org.apache.poi.hssf.record;
-import org.apache.poi.util.HexDump;
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -86,30 +89,6 @@ public abstract class CellRecord extends
return (short) _formatIndex;
}
- @Override
- public final String toString() {
- StringBuilder sb = new StringBuilder();
- String recordName = getRecordName();
-
- sb.append("[").append(recordName).append("]\n");
- sb.append(" .row =
").append(HexDump.shortToHex(getRow())).append("\n");
- sb.append(" .col =
").append(HexDump.shortToHex(getColumn())).append("\n");
- sb.append(" .xfindex=
").append(HexDump.shortToHex(getXFIndex())).append("\n");
- appendValueText(sb);
- sb.append("\n");
- sb.append("[/").append(recordName).append("]\n");
- return sb.toString();
- }
-
- /**
- * Append specific debug info (used by {@link #toString()} for the value
- * contained in this record. Trailing new-line should not be appended
- * (superclass does that).
- *
- * @param sb the StringBuilder to write to
- */
- protected abstract void appendValueText(StringBuilder sb);
-
/**
* Gets the debug info BIFF record type name (used by {@link #toString()}.
*
@@ -144,4 +123,13 @@ public abstract class CellRecord extends
@Override
public abstract CellRecord copy();
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "row", this::getRow,
+ "col", this::getColumn,
+ "xfIndex", this::getXFIndex
+ );
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CodepageRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CodepageRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/CodepageRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CodepageRecord.java Sun Apr
12 22:03:52 2020
@@ -19,7 +19,11 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
import org.apache.poi.util.CodePageUtil;
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -77,17 +81,6 @@ public final class CodepageRecord extend
return field_1_codepage;
}
- public String toString()
- {
- StringBuilder buffer = new StringBuilder();
-
- buffer.append("[CODEPAGE]\n");
- buffer.append(" .codepage = ")
- .append(Integer.toHexString(getCodepage())).append("\n");
- buffer.append("[/CODEPAGE]\n");
- return buffer.toString();
- }
-
public void serialize(LittleEndianOutput out) {
out.writeShort(getCodepage());
}
@@ -105,4 +98,16 @@ public final class CodepageRecord extend
public CodepageRecord copy() {
return new CodepageRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.CODEPAGE;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "codepage", this::getCodepage
+ );
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/ColumnInfoRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/ColumnInfoRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/ColumnInfoRecord.java
(original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/ColumnInfoRecord.java Sun Apr
12 22:03:52 2020
@@ -17,9 +17,12 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
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;
@@ -216,10 +219,7 @@ public final class ColumnInfoRecord exte
if (_options != other._options) {
return false;
}
- if (_colWidth != other._colWidth) {
- return false;
- }
- return true;
+ return _colWidth == other._colWidth;
}
public short getSid() {
@@ -239,24 +239,8 @@ public final class ColumnInfoRecord exte
return 12;
}
- public String toString() {
- StringBuilder sb = new StringBuilder();
-
- sb.append("[COLINFO]\n");
- sb.append(" colfirst = ").append(getFirstColumn()).append("\n");
- sb.append(" collast = ").append(getLastColumn()).append("\n");
- sb.append(" colwidth = ").append(getColumnWidth()).append("\n");
- sb.append(" xfindex = ").append(getXFIndex()).append("\n");
- sb.append(" options =
").append(HexDump.shortToHex(_options)).append("\n");
- sb.append(" hidden = ").append(getHidden()).append("\n");
- sb.append(" olevel = ").append(getOutlineLevel()).append("\n");
- sb.append(" collapsed= ").append(getCollapsed()).append("\n");
- sb.append("[/COLINFO]\n");
- return sb.toString();
- }
-
@Override
- @SuppressWarnings("squid:S2975")
+ @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"})
@Deprecated
@Removal(version = "5.0.0")
public ColumnInfoRecord clone() {
@@ -267,4 +251,23 @@ public final class ColumnInfoRecord exte
public ColumnInfoRecord copy() {
return new ColumnInfoRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.COLUMN_INFO;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "firstColumn", this::getFirstColumn,
+ "lastColumn", this::getLastColumn,
+ "columnWidth", this::getColumnWidth,
+ "xfIndex", this::getXFIndex,
+ "options", () -> _options,
+ "hidden", this::getHidden,
+ "outlineLevel", this::getOutlineLevel,
+ "collapsed", this::getCollapsed
+ );
+ }
}
Modified:
poi/trunk/src/java/org/apache/poi/hssf/record/CommonObjectDataSubRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CommonObjectDataSubRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
---
poi/trunk/src/java/org/apache/poi/hssf/record/CommonObjectDataSubRecord.java
(original)
+++
poi/trunk/src/java/org/apache/poi/hssf/record/CommonObjectDataSubRecord.java
Sun Apr 12 22:03:52 2020
@@ -17,9 +17,14 @@
package org.apache.poi.hssf.record;
+import static org.apache.poi.util.GenericRecordUtil.getBitsAsString;
+
+import java.util.Map;
+import java.util.function.Supplier;
+
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.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.RecordFormatException;
@@ -89,6 +94,10 @@ public final class CommonObjectDataSubRe
}
public CommonObjectDataSubRecord(LittleEndianInput in, int size) {
+ this(in, size, -1);
+ }
+
+ CommonObjectDataSubRecord(LittleEndianInput in, int size, int cmoOt) {
if (size != 18) {
throw new RecordFormatException("Expected size 18 but got (" +
size + ")");
}
@@ -101,45 +110,6 @@ public final class CommonObjectDataSubRe
}
@Override
- public String toString()
- {
- StringBuilder buffer = new StringBuilder();
-
- buffer.append("[ftCmo]\n");
- buffer.append(" .objectType = ")
- .append("0x").append(HexDump.toHex( getObjectType ()))
- .append(" (").append( getObjectType() ).append(" )");
- buffer.append(System.getProperty("line.separator"));
- buffer.append(" .objectId = ")
- .append("0x").append(HexDump.toHex( getObjectId ()))
- .append(" (").append( getObjectId() ).append(" )");
- buffer.append(System.getProperty("line.separator"));
- buffer.append(" .option = ")
- .append("0x").append(HexDump.toHex( getOption ()))
- .append(" (").append( getOption() ).append(" )");
- buffer.append(System.getProperty("line.separator"));
- buffer.append(" .locked =
").append(isLocked()).append('\n');
- buffer.append(" .printable =
").append(isPrintable()).append('\n');
- buffer.append(" .autofill =
").append(isAutofill()).append('\n');
- buffer.append(" .autoline =
").append(isAutoline()).append('\n');
- buffer.append(" .reserved1 = ")
- .append("0x").append(HexDump.toHex( getReserved1 ()))
- .append(" (").append( getReserved1() ).append(" )");
- buffer.append(System.getProperty("line.separator"));
- buffer.append(" .reserved2 = ")
- .append("0x").append(HexDump.toHex( getReserved2 ()))
- .append(" (").append( getReserved2() ).append(" )");
- buffer.append(System.getProperty("line.separator"));
- buffer.append(" .reserved3 = ")
- .append("0x").append(HexDump.toHex( getReserved3 ()))
- .append(" (").append( getReserved3() ).append(" )");
- buffer.append(System.getProperty("line.separator"));
-
- buffer.append("[/ftCmo]\n");
- return buffer.toString();
- }
-
- @Override
public void serialize(LittleEndianOutput out) {
out.writeShort(sid);
@@ -442,4 +412,23 @@ public final class CommonObjectDataSubRe
{
return autoline.isSet(field_3_option);
}
+
+ @Override
+ public SubRecordTypes getGenericRecordType() {
+ return SubRecordTypes.COMMON_OBJECT_DATA;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "objectType", this::getObjectType,
+ "objectId", this::getObjectId,
+ "option", getBitsAsString(this::getOption,
+ new BitField[]{locked,printable,autofill,autoline},
+ new String[]{"LOCKED","PRINTABLE","AUTOFILL","AUTOLINE"}),
+ "reserved1", this::getReserved1,
+ "reserved2", this::getReserved2,
+ "reserved3", this::getReserved3
+ );
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/ContinueRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/ContinueRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/ContinueRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/ContinueRecord.java Sun Apr
12 22:03:52 2020
@@ -17,7 +17,10 @@
package org.apache.poi.hssf.record;
-import org.apache.poi.util.HexDump;
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.Removal;
@@ -55,15 +58,6 @@ public final class ContinueRecord extend
return _data;
}
- public String toString() {
- StringBuilder buffer = new StringBuilder();
-
- buffer.append("[CONTINUE RECORD]\n");
- buffer.append(" .data =
").append(HexDump.toHex(_data)).append("\n");
- buffer.append("[/CONTINUE RECORD]\n");
- return buffer.toString();
- }
-
public short getSid() {
return sid;
}
@@ -73,7 +67,7 @@ public final class ContinueRecord extend
}
@Override
- @SuppressWarnings("squid:S2975")
+ @SuppressWarnings({"squid:S2975", "MethodDoesntCallSuperMethod"})
@Deprecated
@Removal(version = "5.0.0")
public ContinueRecord clone() {
@@ -84,4 +78,14 @@ public final class ContinueRecord extend
public ContinueRecord copy() {
return new ContinueRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.CONTINUE;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties("data", this::getData);
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CountryRecord.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CountryRecord.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/CountryRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CountryRecord.java Sun Apr 12
22:03:52 2020
@@ -19,6 +19,10 @@
package org.apache.poi.hssf.record;
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.util.GenericRecordUtil;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -93,19 +97,6 @@ public final class CountryRecord extends
return field_2_current_country;
}
- public String toString()
- {
- StringBuilder buffer = new StringBuilder();
-
- buffer.append("[COUNTRY]\n");
- buffer.append(" .defaultcountry = ")
- .append(Integer.toHexString(getDefaultCountry())).append("\n");
- buffer.append(" .currentcountry = ")
- .append(Integer.toHexString(getCurrentCountry())).append("\n");
- buffer.append("[/COUNTRY]\n");
- return buffer.toString();
- }
-
public void serialize(LittleEndianOutput out) {
out.writeShort(getDefaultCountry());
out.writeShort(getCurrentCountry());
@@ -124,4 +115,17 @@ public final class CountryRecord extends
public CountryRecord copy() {
return new CountryRecord(this);
}
+
+ @Override
+ public HSSFRecordTypes getGenericRecordType() {
+ return HSSFRecordTypes.COUNTRY;
+ }
+
+ @Override
+ public Map<String, Supplier<?>> getGenericProperties() {
+ return GenericRecordUtil.getGenericProperties(
+ "defaultCountry", this::getDefaultCountry,
+ "currentCountry", this::getCurrentCountry
+ );
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]