@InterfaceAudience.Private @InterfaceStability.Evolving public abstract class AbstractByteRange extends Object implements ByteRange
| Modifier and Type | Field and Description | 
|---|---|
| protected byte[] | bytesThe array containing the bytes in this range. | 
| protected int | hashVariable for lazy-caching the hashCode of this range. | 
| protected int | lengthThe number of bytes in the range. | 
| protected int | offsetThe index of the first byte in this range. | 
| static int | UNSET_HASH_VALUE | 
| Constructor and Description | 
|---|
| AbstractByteRange() | 
| Modifier and Type | Method and Description | 
|---|---|
| protected void | clearHashCache() | 
| int | compareTo(ByteRange other)Bitwise comparison of each byte in the array. | 
| void | deepCopySubRangeTo(int innerOffset,
                  int copyLength,
                  byte[] destination,
                  int destinationOffset)Wrapper for System.arraycopy. | 
| void | deepCopyTo(byte[] destination,
          int destinationOffset)Wrapper for System.arraycopy. | 
| byte[] | deepCopyToNewArray()Instantiate a new byte[] with exact length, which is at least 24 bytes + length. | 
| boolean | equals(Object obj) | 
| byte | get(int index)Retrieve the byte at  index. | 
| ByteRange | get(int index,
   byte[] dst)Fill  dstwith bytes from the range, starting fromindex. | 
| ByteRange | get(int index,
   byte[] dst,
   int offset,
   int length)Fill  dstwith bytes from the range, starting fromindex. | 
| byte[] | getBytes()The underlying byte[]. | 
| int | getInt(int index)Retrieve the int value at  index | 
| int | getLength()The length of the range. | 
| long | getLong(int index)Retrieve the long value at  index | 
| int | getOffset()The offset, the index into the underlying byte[] at which this range begins. | 
| short | getShort(int index)Retrieve the short value at  index | 
| long | getVLong(int index)Retrieve the long value at  indexwhich is stored as VLong | 
| static int | getVLongSize(long val) | 
| int | hashCode() | 
| boolean | isEmpty()Returns true when this range is of zero length, false otherwise. | 
| static boolean | isEmpty(ByteRange range)Returns true when  rangeis of zero length, false otherwise. | 
| protected boolean | isHashCached() | 
| ByteRange | set(byte[] bytes)Reuse this  ByteRangeover a new byte[]. | 
| ByteRange | set(byte[] bytes,
   int offset,
   int length)Reuse this  ByteRangeover a new byte[]. | 
| ByteRange | set(int capacity)Reuse this  ByteRangeover a new byte[]. | 
| ByteRange | setLength(int length)Update the length of this range. | 
| ByteRange | setOffset(int offset)Update the beginning of this range. | 
| String | toString() | 
public static final int UNSET_HASH_VALUE
protected byte[] bytes
protected int offset
ByteRange.get(0) will return bytes[offset].protected int length
protected int hash
public AbstractByteRange()
public byte[] getBytes()
ByteRangepublic ByteRange set(int capacity)
ByteRangeByteRange over a new byte[]. offset is set to 0 and length
 is set to capacity.public ByteRange set(byte[] bytes)
ByteRangeByteRange over a new byte[]. offset is set to 0 and length
 is set to bytes.length. A null bytes IS supported, in which case this method
 will behave equivalently to ByteRange.unset().public ByteRange set(byte[] bytes, int offset, int length)
ByteRangeByteRange over a new byte[]. A null bytes IS supported, in which
 case this method will behave equivalently to ByteRange.unset(), regardless of the values of
 offset and length.public int getOffset()
ByteRangegetOffset in interface ByteRangeByteRange.getBytes()public ByteRange setOffset(int offset)
ByteRangeoffset + length may not be greater than
 bytes.length.public int getLength()
ByteRangepublic ByteRange setLength(int length)
ByteRangeoffset + length should not be greater than
 bytes.length.public boolean isEmpty()
ByteRangepublic static boolean isEmpty(ByteRange range)
range is of zero length, false otherwise.public byte get(int index)
ByteRangeindex.public ByteRange get(int index, byte[] dst)
ByteRangedst with bytes from the range, starting from index.public ByteRange get(int index, byte[] dst, int offset, int length)
ByteRangedst with bytes from the range, starting from index. length bytes
 are copied into dst, starting at offset.public short getShort(int index)
ByteRangeindexpublic int getInt(int index)
ByteRangeindexpublic long getLong(int index)
ByteRangeindexpublic long getVLong(int index)
ByteRangeindex which is stored as VLongpublic static int getVLongSize(long val)
public byte[] deepCopyToNewArray()
ByteRangedeepCopyToNewArray in interface ByteRangepublic void deepCopyTo(byte[] destination, int destinationOffset)
ByteRangedeepCopyTo in interface ByteRangedestination - Copy to this arraydestinationOffset - First index in the destination array.public void deepCopySubRangeTo(int innerOffset, int copyLength, byte[] destination, int destinationOffset)
ByteRangedeepCopySubRangeTo in interface ByteRangeinnerOffset - Start copying from this index in this source ByteRange. First byte
                          copied is bytes[offset + innerOffset]copyLength - Copy this many bytesdestination - Copy to this arraydestinationOffset - First index in the destination array.protected boolean isHashCached()
protected void clearHashCache()
public int compareTo(ByteRange other)
compareTo in interface Comparable<ByteRange>Copyright © 2007–2020 The Apache Software Foundation. All rights reserved.