org.jrdf.util.btree
Class ByteArrayUtil

java.lang.Object
  extended by org.jrdf.util.btree.ByteArrayUtil

public class ByteArrayUtil
extends Object

Class providing utility methods for handling byte arrays.


Constructor Summary
ByteArrayUtil()
           
 
Method Summary
static int compareRegion(byte[] array1, int startIdx1, byte[] array2, int startIdx2, int length)
          Compares two regions of bytes, indicating whether one is larger than the other.
static byte[] get(byte[] array, int offset)
          Gets the subarray from array that starts at offset.
static byte[] get(byte[] array, int offset, int length)
          Gets the subarray of length length from array that starts at offset.
static int getInt(byte[] array, int offset)
           
static long getLong(byte[] array, int offset)
           
static boolean matchesPattern(byte[] value, byte[] mask, byte[] pattern)
          Checks whether value matches pattern after mask has bee applied to value.
static void put(byte[] source, byte[] target, int offset)
          Puts the entire source array in the target array at offset offset.
static void putInt(int value, byte[] array, int offset)
           
static void putLong(long value, byte[] array, int offset)
           
static boolean regionMatches(byte[] subValue, byte[] superValue, int offset)
          Checks whether subValue matches the region in superValue starting at offset offset.
static String toHexString(byte[] array)
          Returns the hexadecimal value of the supplied byte array.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ByteArrayUtil

public ByteArrayUtil()
Method Detail

put

public static void put(byte[] source,
                       byte[] target,
                       int offset)
Puts the entire source array in the target array at offset offset.


get

public static byte[] get(byte[] array,
                         int offset)
Gets the subarray from array that starts at offset.


get

public static byte[] get(byte[] array,
                         int offset,
                         int length)
Gets the subarray of length length from array that starts at offset.


putInt

public static void putInt(int value,
                          byte[] array,
                          int offset)

getInt

public static int getInt(byte[] array,
                         int offset)

putLong

public static void putLong(long value,
                           byte[] array,
                           int offset)

getLong

public static long getLong(byte[] array,
                           int offset)

matchesPattern

public static boolean matchesPattern(byte[] value,
                                     byte[] mask,
                                     byte[] pattern)
Checks whether value matches pattern after mask has bee applied to value. In other words: this method returns true if value[i]&mask[i] == pattern[i] for all i.


regionMatches

public static boolean regionMatches(byte[] subValue,
                                    byte[] superValue,
                                    int offset)
Checks whether subValue matches the region in superValue starting at offset offset.


compareRegion

public static int compareRegion(byte[] array1,
                                int startIdx1,
                                byte[] array2,
                                int startIdx2,
                                int length)
Compares two regions of bytes, indicating whether one is larger than the other.

Parameters:
array1 - The first byte array.
startIdx1 - The start of the region in the first array.
array2 - The second byte array.
startIdx2 - The start of the region in the second array.
length - The length of the region that should be compared.
Returns:
A negative number when the first region is smaller than the second, a positive number when the first region is larger than the second, or 0 if the regions are equal.

toHexString

public static String toHexString(byte[] array)
Returns the hexadecimal value of the supplied byte array. The resulting string always uses two hexadecimals per byte. As a result, the length of the resulting string is guaranteed to be twice the length of the supplied byte array.