summaryrefslogtreecommitdiff
path: root/src/main/java/com/amazon/carbonado/raw/DataDecoder.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/amazon/carbonado/raw/DataDecoder.java')
-rw-r--r--src/main/java/com/amazon/carbonado/raw/DataDecoder.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/java/com/amazon/carbonado/raw/DataDecoder.java b/src/main/java/com/amazon/carbonado/raw/DataDecoder.java
index 635b52e..5ea5c1d 100644
--- a/src/main/java/com/amazon/carbonado/raw/DataDecoder.java
+++ b/src/main/java/com/amazon/carbonado/raw/DataDecoder.java
@@ -18,6 +18,8 @@
package com.amazon.carbonado.raw;
+import java.math.BigInteger;
+
import java.io.EOFException;
import java.io.InputStream;
import java.io.IOException;
@@ -370,6 +372,25 @@ public class DataDecoder {
}
/**
+ * Decodes a BigInteger.
+ *
+ * @param src source of encoded data
+ * @param srcOffset offset into encoded data
+ * @param valueRef decoded BigInteger is stored in element 0, which may be null
+ * @return amount of bytes read from source
+ * @throws CorruptEncodingException if source data is corrupt
+ * @since 1.2
+ */
+ public static int decode(byte[] src, int srcOffset, BigInteger[] valueRef)
+ throws CorruptEncodingException
+ {
+ byte[][] bytesRef = new byte[1][];
+ int amt = decode(src, srcOffset, bytesRef);
+ valueRef[0] = (bytesRef[0] == null) ? null : new BigInteger(bytesRef[0]);
+ return amt;
+ }
+
+ /**
* Decodes the given byte array.
*
* @param src source of encoded data