From 8ab53c6489bf86f9be47a1f599558b689d2cda26 Mon Sep 17 00:00:00 2001 From: Marius Volkhart Date: Mon, 1 Mar 2021 00:25:23 +0000 Subject: [PATCH] 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 --- .../org/apache/poi/hssf/model/InternalWorkbook.java | 2 +- .../poi/hssf/record/AbstractEscherHolderRecord.java | 12 ++++++++++-- .../apache/poi/hssf/record/DrawingGroupRecord.java | 7 ++++++- .../poi/hssf/record/DrawingRecordForBiffViewer.java | 2 +- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/java/org/apache/poi/hssf/model/InternalWorkbook.java b/src/java/org/apache/poi/hssf/model/InternalWorkbook.java index c5703dfca3..d49f2566a7 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 @@ public final class InternalWorkbook { 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 48d75056e3..0132e276e3 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.EscherRecordFactory; 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 @@ public abstract class AbstractEscherHolderRecord extends Record { } } + /** + * @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 68c8c24145..4dbbb70b58 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.EscherRecord; 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 @@ public final class DrawingGroupRecord extends AbstractEscherHolderRecord { * (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 f27c2b6c85..8c9743f4bd 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 final class DrawingRecordForBiffViewer extends AbstractEscherHolderRecord public DrawingRecordForBiffViewer(DrawingRecord r) { super(convertToInputStream(r)); - convertRawBytesToEscherRecords(); + decode(); } private static RecordInputStream convertToInputStream(DrawingRecord r) {