Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/MemFuncPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/MemFuncPtg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/MemFuncPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/MemFuncPtg.java Sun Apr 12 
22:03:52 2020
@@ -17,6 +17,10 @@
 
 package org.apache.poi.ss.formula.ptg;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.util.GenericRecordUtil;
 import org.apache.poi.util.LittleEndianInput;
 import org.apache.poi.util.LittleEndianOutput;
 
@@ -61,18 +65,15 @@ public final class MemFuncPtg extends Op
        public int getLenRefSubexpression() {
                return field_1_len_ref_subexpression;
        }
-       @Override
-       public final String toString() {
-               StringBuilder sb = new StringBuilder(64);
-               sb.append(getClass().getName()).append(" [len=");
-               sb.append(field_1_len_ref_subexpression);
-               sb.append("]");
-               return sb.toString();
-       }
 
        @Override
        public MemFuncPtg copy() {
                // immutable
                return this;
        }
+
+       @Override
+       public Map<String, Supplier<?>> getGenericProperties() {
+               return 
GenericRecordUtil.getGenericProperties("lenRefSubexpression", 
this::getLenRefSubexpression);
+       }
 }
\ No newline at end of file

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/MissingArgPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/MissingArgPtg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/MissingArgPtg.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/MissingArgPtg.java Sun Apr 
12 22:03:52 2020
@@ -17,6 +17,9 @@
 
 package org.apache.poi.ss.formula.ptg;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
 import org.apache.poi.util.LittleEndianOutput;
 
 /**
@@ -49,4 +52,9 @@ public final class MissingArgPtg extends
        public MissingArgPtg copy() {
                return this;
        }
+
+       @Override
+       public Map<String, Supplier<?>> getGenericProperties() {
+               return null;
+       }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NamePtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NamePtg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NamePtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NamePtg.java Sun Apr 12 
22:03:52 2020
@@ -17,8 +17,12 @@
 
 package org.apache.poi.ss.formula.ptg;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
 import org.apache.poi.ss.formula.FormulaRenderingWorkbook;
 import org.apache.poi.ss.formula.WorkbookDependentFormula;
+import org.apache.poi.util.GenericRecordUtil;
 import org.apache.poi.util.LittleEndianInput;
 import org.apache.poi.util.LittleEndianOutput;
 
@@ -90,4 +94,9 @@ public final class NamePtg extends Opera
        public NamePtg copy() {
                return new NamePtg(this);
        }
+
+       @Override
+       public Map<String, Supplier<?>> getGenericProperties() {
+               return GenericRecordUtil.getGenericProperties("index", 
this::getIndex);
+       }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPtg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPtg.java Sun Apr 12 
22:03:52 2020
@@ -17,8 +17,12 @@
 
 package org.apache.poi.ss.formula.ptg;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
 import org.apache.poi.ss.formula.FormulaRenderingWorkbook;
 import org.apache.poi.ss.formula.WorkbookDependentFormula;
+import org.apache.poi.util.GenericRecordUtil;
 import org.apache.poi.util.LittleEndianInput;
 import org.apache.poi.util.LittleEndianOutput;
 
@@ -78,11 +82,6 @@ public final class NameXPtg extends Oper
                throw new RuntimeException("3D references need a workbook to 
determine formula text");
        }
 
-       public String toString(){
-        return "NameXPtg:[sheetRefIndex:" + _sheetRefIndex +
-           " , nameNumber:" + _nameNumber + "]";
-       }
-
        public byte getDefaultOperandClass() {
                return Ptg.CLASS_VALUE;
        }
@@ -99,4 +98,12 @@ public final class NameXPtg extends Oper
                // immutable
                return this;
        }
+
+       @Override
+       public Map<String, Supplier<?>> getGenericProperties() {
+               return GenericRecordUtil.getGenericProperties(
+                       "sheetRefIndex", this::getSheetRefIndex,
+                       "nameIndex", this::getNameIndex
+               );
+       }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPxg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPxg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPxg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPxg.java Sun Apr 12 
22:03:52 2020
@@ -17,7 +17,11 @@
 
 package org.apache.poi.ss.formula.ptg;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
 import org.apache.poi.ss.formula.SheetNameFormatter;
+import org.apache.poi.util.GenericRecordUtil;
 import org.apache.poi.util.LittleEndianOutput;
 
 /**
@@ -52,23 +56,6 @@ public final class NameXPxg extends Oper
         this(-1, null, nameName);
     }
 
-    public String toString(){
-        StringBuilder sb = new StringBuilder();
-        sb.append(getClass().getName());
-        sb.append(" [");
-        if (externalWorkbookNumber >= 0) {
-            sb.append(" [");
-            sb.append("workbook=").append(getExternalWorkbookNumber());
-            sb.append("] ");
-        }
-        sb.append("sheet=").append(getSheetName());
-        sb.append(" ! ");
-        sb.append("name=");
-        sb.append(nameName);
-        sb.append("]");
-        return sb.toString();
-    }
-
     public int getExternalWorkbookNumber() {
         return externalWorkbookNumber;
     }
@@ -118,4 +105,13 @@ public final class NameXPxg extends Oper
     public NameXPxg copy() {
         return new NameXPxg(this);
     }
+
+    @Override
+    public Map<String, Supplier<?>> getGenericProperties() {
+        return GenericRecordUtil.getGenericProperties(
+            "externalWorkbookNumber", this::getExternalWorkbookNumber,
+            "sheetName", this::getSheetName,
+            "nameName", this::getNameName
+        );
+    }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NumberPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NumberPtg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NumberPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NumberPtg.java Sun Apr 12 
22:03:52 2020
@@ -17,7 +17,11 @@
 
 package org.apache.poi.ss.formula.ptg;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
 import org.apache.poi.ss.util.NumberToTextConverter;
+import org.apache.poi.util.GenericRecordUtil;
 import org.apache.poi.util.LittleEndianInput;
 import org.apache.poi.util.LittleEndianOutput;
 
@@ -70,4 +74,9 @@ public final class NumberPtg extends Sca
        public NumberPtg copy() {
                return this;
        }
+
+       @Override
+       public Map<String, Supplier<?>> getGenericProperties() {
+               return GenericRecordUtil.getGenericProperties("value", 
this::getValue);
+       }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/OperationPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/OperationPtg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/OperationPtg.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/OperationPtg.java Sun Apr 
12 22:03:52 2020
@@ -17,6 +17,9 @@
 
 package org.apache.poi.ss.formula.ptg;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
 /**
  * defines a Ptg that is an operation instead of an operand
  * @author  andy
@@ -44,4 +47,9 @@ public abstract class OperationPtg exten
     public byte getDefaultOperandClass() {
         return Ptg.CLASS_VALUE;
     }
+
+    @Override
+    public Map<String, Supplier<?>> getGenericProperties() {
+        return null;
+    }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ParenthesisPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ParenthesisPtg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ParenthesisPtg.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ParenthesisPtg.java Sun 
Apr 12 22:03:52 2020
@@ -17,6 +17,9 @@
 
 package org.apache.poi.ss.formula.ptg;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
 import org.apache.poi.util.LittleEndianOutput;
 
 /**
@@ -55,4 +58,9 @@ public final class ParenthesisPtg extend
        public ParenthesisPtg copy() {
                return instance;
        }
+
+       @Override
+       public Map<String, Supplier<?>> getGenericProperties() {
+               return null;
+       }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ptg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ptg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ptg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ptg.java Sun Apr 12 
22:03:52 2020
@@ -21,6 +21,8 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.poi.common.Duplicatable;
+import org.apache.poi.common.usermodel.GenericRecord;
+import org.apache.poi.util.GenericRecordJsonWriter;
 import org.apache.poi.util.LittleEndianByteArrayOutputStream;
 import org.apache.poi.util.LittleEndianInput;
 import org.apache.poi.util.LittleEndianOutput;
@@ -37,7 +39,7 @@ import org.apache.poi.util.LittleEndianO
  * <em>Reverse-Polish Notation</em> order. The RPN ordering also simplifies 
formula
  * evaluation logic, so POI mostly accesses <tt>Ptg</tt>s in the same way.
  */
-public abstract class Ptg implements Duplicatable {
+public abstract class Ptg implements Duplicatable, GenericRecord {
        public static final Ptg[] EMPTY_PTG_ARRAY = { };
 
        public static final byte CLASS_REF = 0x00;
@@ -62,7 +64,7 @@ public abstract class Ptg implements Dup
                boolean hasArrayPtgs = false;
                while (pos < size) {
                        Ptg ptg = Ptg.createPtg(in);
-                       if (ptg instanceof ArrayPtg.Initial) {
+                       if (ptg instanceof ArrayInitialPtg) {
                                hasArrayPtgs = true;
                        }
                        pos += ptg.getSize();
@@ -74,8 +76,8 @@ public abstract class Ptg implements Dup
                if (hasArrayPtgs) {
                        Ptg[] result = toPtgArray(temp);
                        for (int i=0;i<result.length;i++) {
-                               if (result[i] instanceof ArrayPtg.Initial) {
-                                       result[i] = ((ArrayPtg.Initial) 
result[i]).finishReading(in);
+                               if (result[i] instanceof ArrayInitialPtg) {
+                                       result[i] = ((ArrayInitialPtg) 
result[i]).finishReading(in);
                                }
                        }
                        return result;
@@ -107,7 +109,7 @@ public abstract class Ptg implements Dup
                int baseId = id & 0x1F | 0x20;
 
                switch (baseId) {
-                       case ArrayPtg.sid:    return new 
ArrayPtg.Initial(in);//0x20, 0x40, 0x60
+                       case ArrayPtg.sid:    return new 
ArrayInitialPtg(in);//0x20, 0x40, 0x60
                        case FuncPtg.sid:     return FuncPtg.create(in);  // 
0x21, 0x41, 0x61
                        case FuncVarPtg.sid:  return 
FuncVarPtg.create(in);//0x22, 0x42, 0x62
                        case NamePtg.sid:     return new NamePtg(in);     // 
0x23, 0x43, 0x63
@@ -245,13 +247,9 @@ public abstract class Ptg implements Dup
         */
        public abstract String toFormulaString();
 
-       /** Overridden toString method to ensure object hash is not printed.
-        * This helps get rid of gratuitous diffs when comparing two dumps
-        * Subclasses may output more relevant information by overriding this 
method
-        **/
        @Override
-       public String toString(){
-               return this.getClass().toString();
+       public final String toString() {
+               return GenericRecordJsonWriter.marshal(this);
        }
 
        public final void setClass(byte thePtgClass) {

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref2DPtgBase.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref2DPtgBase.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref2DPtgBase.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref2DPtgBase.java Sun Apr 
12 22:03:52 2020
@@ -61,14 +61,4 @@ abstract class Ref2DPtgBase extends RefP
     public final int getSize() {
                return SIZE;
        }
-
-    @Override
-    public final String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append(getClass().getName());
-        sb.append(" [");
-        sb.append(formatReferenceAsString());
-        sb.append("]");
-        return sb.toString();
-    }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref3DPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref3DPtg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref3DPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref3DPtg.java Sun Apr 12 
22:03:52 2020
@@ -17,10 +17,14 @@
 
 package org.apache.poi.ss.formula.ptg;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
 import org.apache.poi.ss.formula.ExternSheetReferenceToken;
 import org.apache.poi.ss.formula.FormulaRenderingWorkbook;
 import org.apache.poi.ss.formula.WorkbookDependentFormula;
 import org.apache.poi.ss.util.CellReference;
+import org.apache.poi.util.GenericRecordUtil;
 import org.apache.poi.util.LittleEndianInput;
 import org.apache.poi.util.LittleEndianOutput;
 
@@ -57,17 +61,6 @@ public final class Ref3DPtg extends RefP
         setExternSheetIndex(externIdx);
     }
 
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append(getClass().getName());
-        sb.append(" [");
-        sb.append("sheetIx=").append(getExternSheetIndex());
-        sb.append(" ! ");
-        sb.append(formatReferenceAsString());
-        sb.append("]");
-        return sb.toString();
-    }
-
     public void write(LittleEndianOutput out) {
         out.writeByte(sid + getPtgClass());
         out.writeShort(getExternSheetIndex());
@@ -103,4 +96,12 @@ public final class Ref3DPtg extends RefP
     public Ref3DPtg copy() {
         return new Ref3DPtg(this);
     }
+
+    @Override
+    public Map<String, Supplier<?>> getGenericProperties() {
+        return GenericRecordUtil.getGenericProperties(
+            "base", super::getGenericProperties,
+            "externSheetIndex", this::getExternSheetIndex
+        );
+    }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref3DPxg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref3DPxg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref3DPxg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref3DPxg.java Sun Apr 12 
22:03:52 2020
@@ -17,10 +17,14 @@
 
 package org.apache.poi.ss.formula.ptg;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
 import org.apache.poi.ss.formula.SheetIdentifier;
 import org.apache.poi.ss.formula.SheetRangeAndWorkbookIndexFormatter;
 import org.apache.poi.ss.formula.SheetRangeIdentifier;
 import org.apache.poi.ss.util.CellReference;
+import org.apache.poi.util.GenericRecordUtil;
 import org.apache.poi.util.LittleEndianOutput;
 
 /**
@@ -64,26 +68,6 @@ public final class Ref3DPxg extends RefP
         this(-1, sheetName, c);
     }
 
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append(getClass().getName());
-        sb.append(" [");
-        if (externalWorkbookNumber >= 0) {
-            sb.append(" [");
-            sb.append("workbook=").append(getExternalWorkbookNumber());
-            sb.append("] ");
-        }
-        sb.append("sheet=").append(firstSheetName);
-        if (lastSheetName != null) {
-            sb.append(" : ");
-            sb.append("sheet=").append(lastSheetName);
-        }
-        sb.append(" ! ");
-        sb.append(formatReferenceAsString());
-        sb.append("]");
-        return sb.toString();
-    }
-
     public int getExternalWorkbookNumber() {
         return externalWorkbookNumber;
     }
@@ -125,4 +109,14 @@ public final class Ref3DPxg extends RefP
     public Ref3DPxg copy() {
         return new Ref3DPxg(this);
     }
+
+    @Override
+    public Map<String, Supplier<?>> getGenericProperties() {
+        return GenericRecordUtil.getGenericProperties(
+            "base", super::getGenericProperties,
+            "externalWorkbookNumber", this::getExternalWorkbookNumber,
+            "firstSheetName", this::getSheetName,
+            "lastSheetName", this::getLastSheetName
+        );
+    }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/RefErrorPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/RefErrorPtg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/RefErrorPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/RefErrorPtg.java Sun Apr 
12 22:03:52 2020
@@ -17,7 +17,11 @@
 
 package org.apache.poi.ss.formula.ptg;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
 import org.apache.poi.ss.usermodel.FormulaError;
+import org.apache.poi.util.GenericRecordUtil;
 import org.apache.poi.util.LittleEndianInput;
 import org.apache.poi.util.LittleEndianOutput;
 
@@ -43,10 +47,6 @@ public final class RefErrorPtg extends O
         field_1_reserved = in.readInt();
     }
 
-    public String toString() {
-        return getClass().getName();
-    }
-
     public void write(LittleEndianOutput out) {
         out.writeByte(sid + getPtgClass());
         out.writeInt(field_1_reserved);
@@ -69,4 +69,9 @@ public final class RefErrorPtg extends O
     public RefErrorPtg copy() {
         return new RefErrorPtg(this);
     }
+
+    @Override
+    public Map<String, Supplier<?>> getGenericProperties() {
+        return GenericRecordUtil.getGenericProperties("reserved", () -> 
field_1_reserved);
+    }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/RefPtgBase.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/RefPtgBase.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/RefPtgBase.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/RefPtgBase.java Sun Apr 12 
22:03:52 2020
@@ -17,9 +17,13 @@
 
 package org.apache.poi.ss.formula.ptg;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
 import org.apache.poi.ss.util.CellReference;
 import org.apache.poi.util.BitField;
 import org.apache.poi.util.BitFieldFactory;
+import org.apache.poi.util.GenericRecordUtil;
 import org.apache.poi.util.LittleEndianInput;
 import org.apache.poi.util.LittleEndianOutput;
 
@@ -118,4 +122,15 @@ public abstract class RefPtgBase extends
     public final byte getDefaultOperandClass() {
                return Ptg.CLASS_REF;
        }
+
+       @Override
+       public Map<String, Supplier<?>> getGenericProperties() {
+               return GenericRecordUtil.getGenericProperties(
+                       "row", this::getRow,
+                       "rowRelative", this::isRowRelative,
+                       "column", this::getColumn,
+                       "colRelative", this::isColRelative,
+                       "formatReference", this::formatReferenceAsString
+               );
+       }
 }

Modified: 
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ScalarConstantPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ScalarConstantPtg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ScalarConstantPtg.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ScalarConstantPtg.java Sun 
Apr 12 22:03:52 2020
@@ -29,14 +29,4 @@ public abstract class ScalarConstantPtg
        public final byte getDefaultOperandClass() {
                return Ptg.CLASS_VALUE;
        }
-
-       public final String toString() {
-               StringBuilder sb = new StringBuilder(64);
-               sb.append(getClass().getName()).append(" [");
-               sb.append(toFormulaString());
-               sb.append("]");
-               return sb.toString();
-       }
-
-
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/StringPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/StringPtg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/StringPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/StringPtg.java Sun Apr 12 
22:03:52 2020
@@ -17,6 +17,10 @@
 
 package org.apache.poi.ss.formula.ptg;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.util.GenericRecordUtil;
 import org.apache.poi.util.LittleEndianInput;
 import org.apache.poi.util.LittleEndianOutput;
 import org.apache.poi.util.StringUtil;
@@ -106,4 +110,9 @@ public final class StringPtg extends Sca
     public StringPtg copy() {
         return this;
     }
+
+    @Override
+    public Map<String, Supplier<?>> getGenericProperties() {
+        return GenericRecordUtil.getGenericProperties("value", this::getValue);
+    }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/TblPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/TblPtg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/TblPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/TblPtg.java Sun Apr 12 
22:03:52 2020
@@ -17,6 +17,10 @@
 
 package org.apache.poi.ss.formula.ptg;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
+import org.apache.poi.util.GenericRecordUtil;
 import org.apache.poi.util.LittleEndianInput;
 import org.apache.poi.util.LittleEndianOutput;
 
@@ -72,16 +76,17 @@ public final class TblPtg extends Contro
         throw new RuntimeException("Table and Arrays are not yet supported");
     }
 
-    public String toString() {
-        StringBuilder buffer = new StringBuilder("[Data Table - Parent cell is 
an interior cell in a data table]\n");
-        buffer.append("top left row = ").append(getRow()).append("\n");
-        buffer.append("top left col = ").append(getColumn()).append("\n");
-        return buffer.toString();
-    }
-
     @Override
     public TblPtg copy() {
         // immutable
         return this;
     }
+
+    @Override
+    public Map<String, Supplier<?>> getGenericProperties() {
+        return GenericRecordUtil.getGenericProperties(
+            "row", this::getRow,
+            "column", this::getColumn
+        );
+    }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/UnknownPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/UnknownPtg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/UnknownPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/UnknownPtg.java Sun Apr 12 
22:03:52 2020
@@ -16,6 +16,9 @@
 ==================================================================== */
 package org.apache.poi.ss.formula.ptg;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
 import org.apache.poi.util.LittleEndianOutput;
 
 public class UnknownPtg extends Ptg {
@@ -48,4 +51,9 @@ public class UnknownPtg extends Ptg {
     public UnknownPtg copy() {
         return this;
     }
+
+    @Override
+    public Map<String, Supplier<?>> getGenericProperties() {
+        return null;
+    }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressBase.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressBase.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressBase.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressBase.java Sun Apr 
12 22:03:52 2020
@@ -19,12 +19,16 @@ package org.apache.poi.ss.util;
 
 import java.util.EnumSet;
 import java.util.Iterator;
+import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Set;
+import java.util.function.Supplier;
 
 import org.apache.poi.common.Duplicatable;
+import org.apache.poi.common.usermodel.GenericRecord;
 import org.apache.poi.ss.SpreadsheetVersion;
 import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.util.GenericRecordUtil;
 
 
 /**
@@ -32,7 +36,7 @@ import org.apache.poi.ss.usermodel.Cell;
  *
  * Common superclass of 8-bit and 16-bit versions
  */
-public abstract class CellRangeAddressBase implements Iterable<CellAddress>, 
Duplicatable {
+public abstract class CellRangeAddressBase implements Iterable<CellAddress>, 
Duplicatable, GenericRecord {
 
     /**
      * Indicates a cell or range is in the given relative position in a range.
@@ -378,4 +382,14 @@ public abstract class CellRangeAddressBa
         (getMinRow() << 16) +
         (getMaxRow() << 24));
        }
+
+       @Override
+       public Map<String, Supplier<?>> getGenericProperties() {
+               return GenericRecordUtil.getGenericProperties(
+                       "firstRow", this::getFirstRow,
+                       "firstCol", this::getFirstColumn,
+                       "lastRow", this::getLastRow,
+                       "lastCol", this::getLastColumn
+               );
+       }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressList.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressList.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressList.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/ss/util/CellRangeAddressList.java Sun Apr 
12 22:03:52 2020
@@ -20,7 +20,10 @@ package org.apache.poi.ss.util;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.function.Supplier;
 
+import org.apache.poi.common.usermodel.GenericRecord;
 import org.apache.poi.hssf.record.RecordInputStream;
 import org.apache.poi.util.LittleEndianByteArrayOutputStream;
 import org.apache.poi.util.LittleEndianOutput;
@@ -35,32 +38,27 @@ import org.apache.poi.util.LittleEndianO
  * with the number of ranges and the list of the range addresses. Each cell
  * range address (called an ADDR structure) contains 4 16-bit-values.
  * </p>
- *
- * @author Dragos Buleandra (dragos.bulean...@trade2b.ro)
  */
-public class CellRangeAddressList {
+public class CellRangeAddressList implements GenericRecord {
 
        /**
         * List of <tt>CellRangeAddress</tt>es. Each structure represents a 
cell range
         */
-       protected final List<CellRangeAddress> _list;
+       protected final List<CellRangeAddress> _list = new ArrayList<>();
 
        public CellRangeAddressList() {
-               _list = new ArrayList<>();
        }
        /**
         * Convenience constructor for creating a <tt>CellRangeAddressList</tt> 
with a single
         * <tt>CellRangeAddress</tt>.  Other <tt>CellRangeAddress</tt>es may be 
added later.
         */
        public CellRangeAddressList(int firstRow, int lastRow, int firstCol, 
int lastCol) {
-               this();
                addCellRangeAddress(firstRow, firstCol, lastRow, lastCol);
        }
        /**
         * @param in the RecordInputstream to read the record from
         */
        public CellRangeAddressList(RecordInputStream in) {
-               this();
                int nItems = in.readUShort();
 
                for (int k = 0; k < nItems; k++) {
@@ -139,18 +137,14 @@ public class CellRangeAddressList {
        public void serialize(LittleEndianOutput out) {
                int nItems = _list.size();
                out.writeShort(nItems);
-               for (int k = 0; k < nItems; k++) {
-                       CellRangeAddress region = _list.get(k);
+               for (CellRangeAddress region : _list) {
                        region.serialize(out);
                }
        }
 
        public CellRangeAddressList copy() {
                CellRangeAddressList result = new CellRangeAddressList();
-
-               int nItems = _list.size();
-               for (int k = 0; k < nItems; k++) {
-                       CellRangeAddress region = _list.get(k);
+               for (CellRangeAddress region : _list) {
                        result.addCellRangeAddress(region.copy());
                }
                return result;
@@ -160,4 +154,14 @@ public class CellRangeAddressList {
                _list.toArray(result);
                return result;
        }
+
+       @Override
+       public Map<String, Supplier<?>> getGenericProperties() {
+               return null;
+       }
+
+       @Override
+       public List<CellRangeAddress> getGenericChildren() {
+               return _list;
+       }
 }

Modified: poi/trunk/src/java/org/apache/poi/ss/util/CellReference.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/util/CellReference.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/util/CellReference.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/util/CellReference.java Sun Apr 12 
22:03:52 2020
@@ -20,13 +20,17 @@ package org.apache.poi.ss.util;
 import static org.apache.poi.util.StringUtil.endsWithIgnoreCase;
 
 import java.util.Locale;
+import java.util.Map;
 import java.util.Objects;
+import java.util.function.Supplier;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.poi.common.usermodel.GenericRecord;
 import org.apache.poi.ss.SpreadsheetVersion;
 import org.apache.poi.ss.formula.SheetNameFormatter;
 import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.util.GenericRecordUtil;
 
 /**
  * <p>Common conversion functions between Excel style A1, C27 style
@@ -41,7 +45,7 @@ import org.apache.poi.ss.usermodel.Cell;
  * of a cell comment).
  * <tt>CellReference</tt>s have a concept of "sheet", while 
<tt>CellAddress</tt>es do not.</p>
  */
-public class CellReference {
+public class CellReference implements GenericRecord {
     /**
      * Used to classify identifiers found in formulas as cell references or 
not.
      */
@@ -587,4 +591,16 @@ public class CellReference {
     public int hashCode() {
         return 
Objects.hash(_rowIndex,_colIndex,_isRowAbs,_isColAbs,_sheetName);
     }
+
+    @Override
+    public Map<String, Supplier<?>> getGenericProperties() {
+        return GenericRecordUtil.getGenericProperties(
+            "sheetName", this::getSheetName,
+            "rowIndex", this::getRow,
+            "colIndex", this::getCol,
+            "rowAbs", this::isRowAbsolute,
+            "colAbs", this::isColAbsolute,
+            "formatAsString", this::formatAsString
+        );
+    }
 }

Modified: poi/trunk/src/java/org/apache/poi/util/BitField.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/util/BitField.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/util/BitField.java (original)
+++ poi/trunk/src/java/org/apache/poi/util/BitField.java Sun Apr 12 22:03:52 
2020
@@ -15,7 +15,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 
 package org.apache.poi.util;
 
@@ -317,5 +317,10 @@ public class BitField
         return flag ? setByte(holder)
                     : clearByte(holder);
     }
-}   // end public class BitField
+
+
+    public int getMask() {
+        return _mask;
+    }
+}
 

Modified: poi/trunk/src/java/org/apache/poi/util/GenericRecordJsonWriter.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/util/GenericRecordJsonWriter.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/util/GenericRecordJsonWriter.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/util/GenericRecordJsonWriter.java Sun Apr 
12 22:03:52 2020
@@ -73,7 +73,7 @@ public class GenericRecordJsonWriter imp
         boolean print(GenericRecordJsonWriter record, String name, Object 
object);
     }
 
-    private static final List<Map.Entry<Class,GenericRecordHandler>> handler = 
new ArrayList<>();
+    private static final List<Map.Entry<Class<?>,GenericRecordHandler>> 
handler = new ArrayList<>();
 
     static {
         char[] t = new char[255];
@@ -96,7 +96,7 @@ public class GenericRecordJsonWriter imp
         handler(Object.class, GenericRecordJsonWriter::printObject);
     }
 
-    private static void handler(Class c, GenericRecordHandler printer) {
+    private static void handler(Class<?> c, GenericRecordHandler printer) {
         handler.add(new AbstractMap.SimpleEntry<>(c,printer));
     }
 
@@ -147,7 +147,7 @@ public class GenericRecordJsonWriter imp
 
     public void write(GenericRecord record) {
         final String tabs = tabs();
-        Enum type = record.getGenericRecordType();
+        Enum<?> type = record.getGenericRecordType();
         String recordName = (type != null) ? type.name() : 
record.getClass().getSimpleName();
         fw.append(tabs);
         fw.append("{");
@@ -241,7 +241,7 @@ public class GenericRecordJsonWriter imp
         return result;
     }
 
-    protected static boolean matchInstanceOrArray(Class key, Object instance) {
+    protected static boolean matchInstanceOrArray(Class<?> key, Object 
instance) {
         return key.isInstance(instance) || (Array.class.equals(key) && 
instance.getClass().isArray());
     }
 
@@ -302,8 +302,7 @@ public class GenericRecordJsonWriter imp
         fw.println("[");
         int oldChildIndex = childIndex;
         childIndex = 0;
-        //noinspection unchecked
-        ((List)o).forEach(e -> { writeValue(null, e); childIndex++; });
+        ((List<?>)o).forEach(e -> { writeValue(null, e); childIndex++; });
         childIndex = oldChildIndex;
         fw.write(tabs() + "\t]");
         return true;
@@ -533,7 +532,7 @@ public class GenericRecordJsonWriter imp
             if (holdBack != null) {
                 if (appender != null) {
                     appender.append(holdBack);
-                } else {
+                } else if (writer != null) {
                     writer.write(holdBack);
                 }
                 holdBack = null;
@@ -541,7 +540,7 @@ public class GenericRecordJsonWriter imp
 
             if (appender != null) {
                 appender.append(String.valueOf(cbuf), off, len);
-            } else {
+            } else if (writer != null) {
                 writer.write(cbuf, off, len);
             }
         }

Modified: poi/trunk/src/java/org/apache/poi/util/GenericRecordUtil.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/util/GenericRecordUtil.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/util/GenericRecordUtil.java (original)
+++ poi/trunk/src/java/org/apache/poi/util/GenericRecordUtil.java Sun Apr 12 
22:03:52 2020
@@ -19,6 +19,7 @@
 
 package org.apache.poi.util;
 
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -38,7 +39,7 @@ public final class GenericRecordUtil {
         String val1, Supplier<?> sup1,
         String val2, Supplier<?> sup2
     ) {
-        return getGenericProperties(val1, sup1, val2, sup2, null, null, null, 
null, null, null, null, null);
+        return getGenericProperties(val1, sup1, val2, sup2, null, null, null, 
null, null, null, null, null, null, null, null, null, null, null);
     }
 
     public static Map<String, Supplier<?>> getGenericProperties(
@@ -46,7 +47,7 @@ public final class GenericRecordUtil {
             String val2, Supplier<?> sup2,
             String val3, Supplier<?> sup3
     ) {
-        return getGenericProperties(val1, sup1, val2, sup2, val3, sup3, null, 
null, null, null, null, null);
+        return getGenericProperties(val1, sup1, val2, sup2, val3, sup3, null, 
null, null, null, null, null, null, null, null, null, null, null);
     }
 
     public static Map<String, Supplier<?>> getGenericProperties(
@@ -55,7 +56,7 @@ public final class GenericRecordUtil {
             String val3, Supplier<?> sup3,
             String val4, Supplier<?> sup4
     ) {
-        return getGenericProperties(val1, sup1, val2, sup2, val3, sup3, val4, 
sup4, null, null, null, null);
+        return getGenericProperties(val1, sup1, val2, sup2, val3, sup3, val4, 
sup4, null, null, null, null, null, null, null, null, null, null);
 
     }
 
@@ -66,7 +67,7 @@ public final class GenericRecordUtil {
             String val4, Supplier<?> sup4,
             String val5, Supplier<?> sup5
     ) {
-        return getGenericProperties(val1, sup1, val2, sup2, val3, sup3, val4, 
sup4, val5, sup5, null, null);
+        return getGenericProperties(val1, sup1, val2, sup2, val3, sup3, val4, 
sup4, val5, sup5, null, null, null, null, null, null, null, null);
     }
 
     public static Map<String, Supplier<?>> getGenericProperties(
@@ -77,10 +78,49 @@ public final class GenericRecordUtil {
             String val5, Supplier<?> sup5,
             String val6, Supplier<?> sup6
     ) {
+        return getGenericProperties(val1, sup1, val2, sup2, val3, sup3, val4, 
sup4, val5, sup5, val6, sup6, null, null, null, null, null, null);
+    }
+
+    public static Map<String, Supplier<?>> getGenericProperties(
+        String val1, Supplier<?> sup1,
+        String val2, Supplier<?> sup2,
+        String val3, Supplier<?> sup3,
+        String val4, Supplier<?> sup4,
+        String val5, Supplier<?> sup5,
+        String val6, Supplier<?> sup6,
+        String val7, Supplier<?> sup7
+    ) {
+        return getGenericProperties(val1, sup1, val2, sup2, val3, sup3, val4, 
sup4, val5, sup5, val6, sup6, val7, sup7, null, null, null, null);
+    }
+
+    public static Map<String, Supplier<?>> getGenericProperties(
+        String val1, Supplier<?> sup1,
+        String val2, Supplier<?> sup2,
+        String val3, Supplier<?> sup3,
+        String val4, Supplier<?> sup4,
+        String val5, Supplier<?> sup5,
+        String val6, Supplier<?> sup6,
+        String val7, Supplier<?> sup7,
+        String val8, Supplier<?> sup8
+    ) {
+        return getGenericProperties(val1, sup1, val2, sup2, val3, sup3, val4, 
sup4, val5, sup5, val6, sup6, val7, sup7, val8, sup8, null, null);
+    }
+
+    public static Map<String, Supplier<?>> getGenericProperties(
+        String val1, Supplier<?> sup1,
+        String val2, Supplier<?> sup2,
+        String val3, Supplier<?> sup3,
+        String val4, Supplier<?> sup4,
+        String val5, Supplier<?> sup5,
+        String val6, Supplier<?> sup6,
+        String val7, Supplier<?> sup7,
+        String val8, Supplier<?> sup8,
+        String val9, Supplier<?> sup9
+    ) {
         final Map<String,Supplier<?>> m = new LinkedHashMap<>();
 
-        final String[] vals = { val1, val2, val3, val4, val5, val6 };
-        final Supplier<?>[] sups = { sup1, sup2, sup3, sup4, sup5, sup6 };
+        final String[] vals = { val1, val2, val3, val4, val5, val6, val7, 
val8, val9 };
+        final Supplier<?>[] sups = { sup1, sup2, sup3, sup4, sup5, sup6, sup7, 
sup8, sup9 };
 
         for (int i=0; i<vals.length && vals[i] != null; i++) {
             assert(sups[i] != null);
@@ -97,15 +137,20 @@ public final class GenericRecordUtil {
         return Collections.unmodifiableMap(m);
     }
 
-    public static <T extends Enum> Supplier<T> safeEnum(T[] values, 
Supplier<Number> ordinal) {
+    public static <T extends Enum<?>> Supplier<T> safeEnum(T[] values, 
Supplier<Number> ordinal) {
         return safeEnum(values, ordinal, null);
     }
 
-    public static <T extends Enum> Supplier<T> safeEnum(T[] values, 
Supplier<Number> ordinal, T defaultVal) {
+    public static <T extends Enum<?>> Supplier<T> safeEnum(T[] values, 
Supplier<Number> ordinal, T defaultVal) {
         int ord = ordinal.get().intValue();
         return () -> (0 <= ord && ord < values.length) ? values[ord] : 
defaultVal;
     }
 
+    public static Supplier<AnnotatedFlag> getBitsAsString(Supplier<Number> 
flags, final BitField[] masks, final String[] names) {
+        int[] iMasks = 
Arrays.stream(masks).mapToInt(BitField::getMask).toArray();
+        return () -> new AnnotatedFlag(flags, iMasks, names, false);
+    }
+
     public static Supplier<AnnotatedFlag> getBitsAsString(Supplier<Number> 
flags, final int[] masks, final String[] names) {
         return () -> new AnnotatedFlag(flags, masks, names, false);
     }

Modified: poi/trunk/src/java/org/apache/poi/util/IntMapper.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/util/IntMapper.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/util/IntMapper.java (original)
+++ poi/trunk/src/java/org/apache/poi/util/IntMapper.java Sun Apr 12 22:03:52 
2020
@@ -94,4 +94,8 @@ public class IntMapper<T> implements Dup
     public IntMapper<T> copy() {
         return new IntMapper<>(this);
     }
+
+    public List<T> getElements() {
+        return elements;
+    }
 }
\ No newline at end of file

Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/AllChartRecordTests.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/AllChartRecordTests.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- 
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/AllChartRecordTests.java
 (original)
+++ 
poi/trunk/src/testcases/org/apache/poi/hssf/record/chart/AllChartRecordTests.java
 Sun Apr 12 22:03:52 2020
@@ -56,7 +56,6 @@ import org.junit.runners.Suite;
     TestSeriesListRecord.class,
     TestSeriesRecord.class,
     TestSeriesTextRecord.class,
-    TestSeriesToChartGroupRecord.class,
     TestSheetPropertiesRecord.class,
     TestTextRecord.class,
     TestTickRecord.class,

Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java 
Sun Apr 12 22:03:52 2020
@@ -36,6 +36,8 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
+import java.util.function.Supplier;
 
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.ddf.EscherBSERecord;
@@ -47,6 +49,7 @@ import org.apache.poi.hssf.model.HSSFFor
 import org.apache.poi.hssf.model.InternalSheet;
 import org.apache.poi.hssf.model.InternalWorkbook;
 import org.apache.poi.hssf.record.CFRuleRecord;
+import org.apache.poi.hssf.record.HSSFRecordTypes;
 import org.apache.poi.hssf.record.NameRecord;
 import org.apache.poi.hssf.record.Record;
 import org.apache.poi.hssf.record.RecordBase;
@@ -507,6 +510,16 @@ public final class TestHSSFWorkbook exte
         public BadlyBehavedRecord copy() {
             return null;
         }
+
+        @Override
+        public HSSFRecordTypes getGenericRecordType() {
+            return null;
+        }
+
+        @Override
+        public Map<String, Supplier<?>> getGenericProperties() {
+            return null;
+        }
     }
 
     /**

Modified: 
poi/trunk/src/testcases/org/apache/poi/ss/formula/ptg/TestArrayPtg.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/formula/ptg/TestArrayPtg.java?rev=1876433&r1=1876432&r2=1876433&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/ss/formula/ptg/TestArrayPtg.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/ss/formula/ptg/TestArrayPtg.java Sun 
Apr 12 22:03:52 2020
@@ -49,7 +49,7 @@ public final class TestArrayPtg {
        };
 
        private static ArrayPtg create(byte[] initialData, byte[] constantData) 
{
-               ArrayPtg.Initial ptgInit = new 
ArrayPtg.Initial(TestcaseRecordInputStream.createLittleEndian(initialData));
+               ArrayInitialPtg ptgInit = new 
ArrayInitialPtg(TestcaseRecordInputStream.createLittleEndian(initialData));
                return 
ptgInit.finishReading(TestcaseRecordInputStream.createLittleEndian(constantData));
        }
 



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

Reply via email to