org.apache.hadoop.hbase.util
Class SimplePositionedByteRange

java.lang.Object
  extended by org.apache.hadoop.hbase.util.SimpleByteRange
      extended by org.apache.hadoop.hbase.util.SimplePositionedByteRange
All Implemented Interfaces:
Comparable<ByteRange>, ByteRange, PositionedByteRange

@InterfaceAudience.Public
@InterfaceStability.Evolving
public class SimplePositionedByteRange
extends SimpleByteRange
implements PositionedByteRange

Extends the basic SimpleByteRange implementation with position support. position is considered transient, not fundamental to the definition of the range, and does not participate in SimpleByteRange.compareTo(ByteRange), SimpleByteRange.hashCode(), or SimpleByteRange.equals(Object). Position is retained by copy operations.


Field Summary
 
Fields inherited from class org.apache.hadoop.hbase.util.SimpleByteRange
bytes, length, offset
 
Constructor Summary
SimplePositionedByteRange()
          Create a new PositionedByteRange lacking a backing array and with an undefined viewport.
SimplePositionedByteRange(byte[] bytes)
          Create a new PositionedByteRange over the provided bytes.
SimplePositionedByteRange(byte[] bytes, int offset, int length)
          Create a new PositionedByteRange over the provided bytes.
SimplePositionedByteRange(int capacity)
          Create a new PositionedByteRange over a new backing array of size capacity.
 
Method Summary
 PositionedByteRange deepCopy()
          Create a new ByteRange with new backing byte[] containing a copy of the content from this range's window.
 byte get()
          Retrieve the next byte from this range.
 PositionedByteRange get(byte[] dst)
          Fill dst with bytes from the range, starting from position.
 PositionedByteRange get(byte[] dst, int offset, int length)
          Fill dst with bytes from the range, starting from the current position.
 PositionedByteRange get(int index, byte[] dst)
          Fill dst with bytes from the range, starting from index.
 PositionedByteRange get(int index, byte[] dst, int offset, int length)
          Fill dst with bytes from the range, starting from index.
 int getPosition()
          The current position marker.
 int getRemaining()
          The number of bytes remaining between position and the end of the range.
 byte peek()
          Retrieve the next byte from this range without incrementing position.
 PositionedByteRange put(byte val)
          Store val at the next position in this range.
 PositionedByteRange put(byte[] val)
          Store the content of val in this range, starting at the next position.
 PositionedByteRange put(byte[] val, int offset, int length)
          Store length bytes from val into this range.
 PositionedByteRange put(int index, byte val)
          Store val at index.
 PositionedByteRange put(int index, byte[] val)
          Store val at index.
 PositionedByteRange put(int index, byte[] val, int offset, int length)
          Store length bytes from val into this range, starting at index.
 PositionedByteRange set(byte[] bytes)
          Reuse this ByteRange over a new byte[].
 PositionedByteRange set(byte[] bytes, int offset, int length)
          Reuse this ByteRange over a new byte[].
 PositionedByteRange set(int capacity)
          Reuse this ByteRange over a new byte[].
 PositionedByteRange setLength(int length)
          Update the length of this range.
 PositionedByteRange setOffset(int offset)
          Update the beginning of this range.
 PositionedByteRange setPosition(int position)
          Update the position index.
 PositionedByteRange shallowCopy()
          Create a new ByteRange that points at this range's byte[].
 PositionedByteRange shallowCopySubRange(int innerOffset, int copyLength)
          Create a new ByteRange that points at this range's byte[].
 PositionedByteRange unset()
          Nullifies this ByteRange.
 
Methods inherited from class org.apache.hadoop.hbase.util.SimpleByteRange
clearHashCache, compareTo, deepCopySubRangeTo, deepCopyTo, deepCopyToNewArray, equals, get, getBytes, getLength, getOffset, hashCode, isEmpty, isEmpty, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.hadoop.hbase.util.ByteRange
deepCopySubRangeTo, deepCopyTo, deepCopyToNewArray, get, getBytes, getLength, getOffset, isEmpty
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Constructor Detail

SimplePositionedByteRange

public SimplePositionedByteRange()
Create a new PositionedByteRange lacking a backing array and with an undefined viewport.


SimplePositionedByteRange

public SimplePositionedByteRange(int capacity)
Create a new PositionedByteRange over a new backing array of size capacity. The range's offset and length are 0 and capacity, respectively.

Parameters:
capacity - the size of the backing array.

SimplePositionedByteRange

public SimplePositionedByteRange(byte[] bytes)
Create a new PositionedByteRange over the provided bytes.

Parameters:
bytes - The array to wrap.

SimplePositionedByteRange

public SimplePositionedByteRange(byte[] bytes,
                                 int offset,
                                 int length)
Create a new PositionedByteRange over the provided bytes.

Parameters:
bytes - The array to wrap.
offset - The offset into bytes considered the beginning of this range.
length - The length of this range.
Method Detail

unset

public PositionedByteRange unset()
Description copied from interface: ByteRange
Nullifies this ByteRange. That is, it becomes a husk, being a range over no byte[] whatsoever.

Specified by:
unset in interface ByteRange
Specified by:
unset in interface PositionedByteRange
Overrides:
unset in class SimpleByteRange
Returns:
this

set

public PositionedByteRange set(int capacity)
Description copied from interface: ByteRange
Reuse this ByteRange over a new byte[]. offset is set to 0 and length is set to capacity.

Specified by:
set in interface ByteRange
Specified by:
set in interface PositionedByteRange
Overrides:
set in class SimpleByteRange
Parameters:
capacity - the size of a new byte[].
Returns:
this

set

public PositionedByteRange set(byte[] bytes)
Description copied from interface: ByteRange
Reuse this ByteRange 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().

Specified by:
set in interface ByteRange
Specified by:
set in interface PositionedByteRange
Overrides:
set in class SimpleByteRange
Parameters:
bytes - the array to wrap.
Returns:
this

set

public PositionedByteRange set(byte[] bytes,
                               int offset,
                               int length)
Description copied from interface: ByteRange
Reuse this ByteRange 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.

Specified by:
set in interface ByteRange
Specified by:
set in interface PositionedByteRange
Overrides:
set in class SimpleByteRange
Parameters:
bytes - The array to wrap.
offset - The offset into bytes considered the beginning of this range.
length - The length of this range.
Returns:
this.

setOffset

public PositionedByteRange setOffset(int offset)
Update the beginning of this range. offset + length may not be greater than bytes.length. Resets position to 0.

Specified by:
setOffset in interface ByteRange
Specified by:
setOffset in interface PositionedByteRange
Overrides:
setOffset in class SimpleByteRange
Parameters:
offset - the new start of this range.
Returns:
this.

setLength

public PositionedByteRange setLength(int length)
Update the length of this range. offset + length should not be greater than bytes.length. If position is greater than the new length, sets position to length.

Specified by:
setLength in interface ByteRange
Specified by:
setLength in interface PositionedByteRange
Overrides:
setLength in class SimpleByteRange
Parameters:
length - The new length of this range.
Returns:
this.

getPosition

public int getPosition()
Description copied from interface: PositionedByteRange
The current position marker. This valuae is 0-indexed, relative to the beginning of the range.

Specified by:
getPosition in interface PositionedByteRange

setPosition

public PositionedByteRange setPosition(int position)
Description copied from interface: PositionedByteRange
Update the position index. May not be greater than length.

Specified by:
setPosition in interface PositionedByteRange
Parameters:
position - the new position in this range.
Returns:
this.

getRemaining

public int getRemaining()
Description copied from interface: PositionedByteRange
The number of bytes remaining between position and the end of the range.

Specified by:
getRemaining in interface PositionedByteRange

peek

public byte peek()
Description copied from interface: PositionedByteRange
Retrieve the next byte from this range without incrementing position.

Specified by:
peek in interface PositionedByteRange

get

public byte get()
Description copied from interface: PositionedByteRange
Retrieve the next byte from this range.

Specified by:
get in interface PositionedByteRange

get

public PositionedByteRange get(byte[] dst)
Description copied from interface: PositionedByteRange
Fill dst with bytes from the range, starting from position. This range's position is incremented by the length of dst, the number of bytes copied.

Specified by:
get in interface PositionedByteRange
Parameters:
dst - the destination of the copy.
Returns:
this.

get

public PositionedByteRange get(byte[] dst,
                               int offset,
                               int length)
Description copied from interface: PositionedByteRange
Fill dst with bytes from the range, starting from the current position. length bytes are copied into dst, starting at offset. This range's position is incremented by the number of bytes copied.

Specified by:
get in interface PositionedByteRange
Parameters:
dst - the destination of the copy.
offset - the offset into dst to start the copy.
length - the number of bytes to copy into dst.
Returns:
this.

put

public PositionedByteRange put(byte val)
Description copied from interface: PositionedByteRange
Store val at the next position in this range.

Specified by:
put in interface PositionedByteRange
Parameters:
val - the new value.
Returns:
this.

put

public PositionedByteRange put(byte[] val)
Description copied from interface: PositionedByteRange
Store the content of val in this range, starting at the next position.

Specified by:
put in interface PositionedByteRange
Parameters:
val - the new value.
Returns:
this.

put

public PositionedByteRange put(byte[] val,
                               int offset,
                               int length)
Description copied from interface: PositionedByteRange
Store length bytes from val into this range. Bytes from val are copied starting at offset into the range, starting at the current position.

Specified by:
put in interface PositionedByteRange
Parameters:
val - the new value.
offset - the offset in val from which to start copying.
length - the number of bytes to copy from val.
Returns:
this.

get

public PositionedByteRange get(int index,
                               byte[] dst)
Description copied from interface: ByteRange
Fill dst with bytes from the range, starting from index.

Specified by:
get in interface ByteRange
Specified by:
get in interface PositionedByteRange
Overrides:
get in class SimpleByteRange
Parameters:
index - zero-based index into this range.
dst - the destination of the copy.
Returns:
this.

get

public PositionedByteRange get(int index,
                               byte[] dst,
                               int offset,
                               int length)
Description copied from interface: ByteRange
Fill dst with bytes from the range, starting from index. length bytes are copied into dst, starting at offset.

Specified by:
get in interface ByteRange
Specified by:
get in interface PositionedByteRange
Overrides:
get in class SimpleByteRange
Parameters:
index - zero-based index into this range.
dst - the destination of the copy.
offset - the offset into dst to start the copy.
length - the number of bytes to copy into dst.
Returns:
this.

put

public PositionedByteRange put(int index,
                               byte val)
Description copied from interface: ByteRange
Store val at index.

Specified by:
put in interface ByteRange
Specified by:
put in interface PositionedByteRange
Overrides:
put in class SimpleByteRange
Parameters:
index - the index in the range where val is stored.
val - the value to store.
Returns:
this.

put

public PositionedByteRange put(int index,
                               byte[] val)
Description copied from interface: ByteRange
Store val at index.

Specified by:
put in interface ByteRange
Specified by:
put in interface PositionedByteRange
Overrides:
put in class SimpleByteRange
Parameters:
index - the index in the range where val is stored.
val - the value to store.
Returns:
this.

put

public PositionedByteRange put(int index,
                               byte[] val,
                               int offset,
                               int length)
Description copied from interface: ByteRange
Store length bytes from val into this range, starting at index. Bytes from val are copied starting at offset into the range.

Specified by:
put in interface ByteRange
Specified by:
put in interface PositionedByteRange
Overrides:
put in class SimpleByteRange
Parameters:
index - position in this range to start the copy.
val - the value to store.
offset - the offset in val from which to start copying.
length - the number of bytes to copy from val.
Returns:
this.

deepCopy

public PositionedByteRange deepCopy()
Description copied from interface: ByteRange
Create a new ByteRange with new backing byte[] containing a copy of the content from this range's window.

Specified by:
deepCopy in interface ByteRange
Specified by:
deepCopy in interface PositionedByteRange
Overrides:
deepCopy in class SimpleByteRange
Returns:
Deep copy

shallowCopy

public PositionedByteRange shallowCopy()
Description copied from interface: ByteRange
Create a new ByteRange that points at this range's byte[]. Modifying the shallowCopy will modify the bytes in this range's array. Pass over the hash code if it is already cached.

Specified by:
shallowCopy in interface ByteRange
Specified by:
shallowCopy in interface PositionedByteRange
Overrides:
shallowCopy in class SimpleByteRange
Returns:
new ByteRange object referencing this range's byte[].

shallowCopySubRange

public PositionedByteRange shallowCopySubRange(int innerOffset,
                                               int copyLength)
Description copied from interface: ByteRange
Create a new ByteRange that points at this range's byte[]. The new range can have different values for offset and length, but modifying the shallowCopy will modify the bytes in this range's array. Pass over the hash code if it is already cached.

Specified by:
shallowCopySubRange in interface ByteRange
Specified by:
shallowCopySubRange in interface PositionedByteRange
Overrides:
shallowCopySubRange in class SimpleByteRange
Parameters:
innerOffset - First byte of clone will be this.offset + copyOffset.
copyLength - Number of bytes in the clone.
Returns:
new ByteRange object referencing this range's byte[].


Copyright © 2015 The Apache Software Foundation. All Rights Reserved.