Deprecate functions that duplicate functionality
DrawingGroupRecord#processChildRecords and AbstractEscherHolderRecord#convertRawBytesToEscherRecords duplicate the functionality of AbstractEscherHolderRecord#decode. This makes the code harder to follow, as it is not clear when certain access patterns repeat. Accordingly, these functions are deprecated and flagged for removal.
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1887021 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/java/org/apache/poi/hssf/model/InternalWorkbook.java b/src/java/org/apache/poi/hssf/model/InternalWorkbook.java
index c5703df..d49f256 100644
--- a/src/java/org/apache/poi/hssf/model/InternalWorkbook.java
+++ b/src/java/org/apache/poi/hssf/model/InternalWorkbook.java
@@ -1840,7 +1840,7 @@
continue;
}
DrawingGroupRecord dg = (DrawingGroupRecord)r;
- dg.processChildRecords();
+ dg.decode();
drawingManager = findDrawingManager(dg, escherBSERecords);
if (drawingManager != null) {
return drawingManager;
diff --git a/src/java/org/apache/poi/hssf/record/AbstractEscherHolderRecord.java b/src/java/org/apache/poi/hssf/record/AbstractEscherHolderRecord.java
index 48d7505..0132e27 100644
--- a/src/java/org/apache/poi/hssf/record/AbstractEscherHolderRecord.java
+++ b/src/java/org/apache/poi/hssf/record/AbstractEscherHolderRecord.java
@@ -27,6 +27,7 @@
import org.apache.poi.ddf.NullEscherSerializationListener;
import org.apache.poi.hssf.util.LazilyConcatenatedByteArray;
import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.Removal;
/**
* The escher container record is used to hold escher records. It is abstract and
@@ -63,10 +64,17 @@
}
}
+ /**
+ * @deprecated Call {@link #decode()} instead.
+ */
+ @Removal(version = "5.3")
+ @Deprecated
protected void convertRawBytesToEscherRecords() {
+ // decode() does a check to see if raw bytes have already been interpreted. In the case that we did not eagerly
+ // interpret the bytes due to DESERIALIZE being false, decode() will interpret the bytes. If we did already
+ // interpret the bytes due to DESERIALIZE being true, decode skips doing the work again.
if (!DESERIALIZE) {
- byte[] rawData = getRawData();
- convertToEscherRecords(0, rawData.length, rawData);
+ decode();
}
}
private void convertToEscherRecords( int offset, int size, byte[] data )
diff --git a/src/java/org/apache/poi/hssf/record/DrawingGroupRecord.java b/src/java/org/apache/poi/hssf/record/DrawingGroupRecord.java
index 68c8c24..4dbbb70 100644
--- a/src/java/org/apache/poi/hssf/record/DrawingGroupRecord.java
+++ b/src/java/org/apache/poi/hssf/record/DrawingGroupRecord.java
@@ -25,6 +25,7 @@
import org.apache.poi.ddf.EscherRecordTypes;
import org.apache.poi.ddf.NullEscherSerializationListener;
import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.Removal;
/**
* Specifies a group of drawing objects.
@@ -81,9 +82,13 @@
* (Not done by default in case we break things,
* unless you set the "poi.deserialize.escher"
* system property)
+ *
+ * @deprecated Call {@link #decode()} instead.
*/
+ @Removal(version = "5.3")
+ @Deprecated
public void processChildRecords() {
- convertRawBytesToEscherRecords();
+ decode();
}
public int getRecordSize() {
diff --git a/src/java/org/apache/poi/hssf/record/DrawingRecordForBiffViewer.java b/src/java/org/apache/poi/hssf/record/DrawingRecordForBiffViewer.java
index f27c2b6..8c9743f 100644
--- a/src/java/org/apache/poi/hssf/record/DrawingRecordForBiffViewer.java
+++ b/src/java/org/apache/poi/hssf/record/DrawingRecordForBiffViewer.java
@@ -42,7 +42,7 @@
public DrawingRecordForBiffViewer(DrawingRecord r)
{
super(convertToInputStream(r));
- convertRawBytesToEscherRecords();
+ decode();
}
private static RecordInputStream convertToInputStream(DrawingRecord r)
{