Class RandomAccessData
java.lang.Object
org.apache.beam.runners.dataflow.util.RandomAccessData
An elastic-sized byte array which allows you to manipulate it as a stream, or access it directly.
This allows for a quick succession of moving bytes from an
InputStream to this wrapper to
be used as an OutputStream and vice versa. This wrapper also provides random access to
bytes stored within. This wrapper allows users to finely control the number of byte copies that
occur.
Anything stored within the in-memory buffer from offset size() is considered
temporary unused storage.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classACoderwhich encodes the valid parts of this stream.static final classAComparatorthat compares two byte arrays lexicographically. -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a RandomAccessData with a default buffer size.RandomAccessData(byte[] initialBuffer) Constructs a RandomAccessData with the initial buffer.RandomAccessData(int initialBufferSize) Constructs a RandomAccessData with the given buffer size. -
Method Summary
Modifier and TypeMethodDescriptionbyte[]array()Returns the backing array.asInputStream(int offset, int length) Returns anInputStreamwrapper which supplies the portion of this backing byte buffer starting atoffsetand up tolengthbytes.Returns an output stream which writes to the backing buffer from the current position.copy()Returns a copy of this RandomAccessData.booleaninthashCode()Returns a RandomAccessData that is the smallest value of same length which is strictly greater than this.voidreadFrom(InputStream inStream, int offset, int length) Readslengthbytes from the specified input stream writing them into the backing data store starting atoffset.voidresetTo(int position) Resets the end of the stream to the specified position.intsize()Returns the number of bytes in the backing array that are valid.toString()voidwriteTo(OutputStream out, int offset, int length) Writeslengthbytes starting atoffsetfrom the backing data store to the specified output stream.
-
Field Details
-
UNSIGNED_LEXICOGRAPHICAL_COMPARATOR
public static final RandomAccessData.UnsignedLexicographicalComparator UNSIGNED_LEXICOGRAPHICAL_COMPARATOR
-
-
Constructor Details
-
RandomAccessData
public RandomAccessData()Constructs a RandomAccessData with a default buffer size. -
RandomAccessData
public RandomAccessData(byte[] initialBuffer) Constructs a RandomAccessData with the initial buffer. -
RandomAccessData
public RandomAccessData(int initialBufferSize) Constructs a RandomAccessData with the given buffer size.
-
-
Method Details
-
increment
Returns a RandomAccessData that is the smallest value of same length which is strictly greater than this. Note that if this is empty or is all 0xFF then a token value of positive infinity is returned.The
RandomAccessData.UnsignedLexicographicalComparatorsupports comparingRandomAccessDatawith support for positive infinity.- Throws:
IOException
-
array
public byte[] array()Returns the backing array. -
size
public int size()Returns the number of bytes in the backing array that are valid. -
resetTo
public void resetTo(int position) Resets the end of the stream to the specified position. -
asOutputStream
Returns an output stream which writes to the backing buffer from the current position. Note that the internal buffer will grow as required to accommodate all data written. -
asInputStream
Returns anInputStreamwrapper which supplies the portion of this backing byte buffer starting atoffsetand up tolengthbytes. Note that the returnedInputStreamis only a wrapper and any modifications to the underlyingRandomAccessDatawill be visible by theInputStream. -
writeTo
Writeslengthbytes starting atoffsetfrom the backing data store to the specified output stream.- Throws:
IOException
-
readFrom
Readslengthbytes from the specified input stream writing them into the backing data store starting atoffset.Note that the in memory stream will be grown to ensure there is enough capacity.
- Throws:
IOException
-
copy
Returns a copy of this RandomAccessData.- Throws:
IOException
-
equals
-
hashCode
public int hashCode() -
toString
-