From 88194f7f16e705c21ea890febb8f1f2f3e2420b7 Mon Sep 17 00:00:00 2001 From: "Brian S. O'Neill" Date: Fri, 18 Jul 2008 04:39:37 +0000 Subject: Added utilities for encoding and decoding BigIntegers. --- .../java/com/amazon/carbonado/raw/DataDecoder.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/main/java/com/amazon/carbonado/raw/DataDecoder.java') 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; @@ -369,6 +371,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. * -- cgit v1.2.3