java.lang.Object
org.refcodes.serial.BoundedSequenceDecorator
- All Implemented Interfaces:
Iterable<Byte>,org.refcodes.mixin.Bytes,org.refcodes.mixin.Clearable,org.refcodes.mixin.InputStreamAccessor,org.refcodes.mixin.LengthAccessor,org.refcodes.mixin.LengthAccessor.LengthMutator,org.refcodes.mixin.LengthAccessor.LengthProperty,org.refcodes.mixin.OutputStreamAccessor,Sequence
public class BoundedSequenceDecorator
extends Object
implements Sequence, org.refcodes.mixin.LengthAccessor.LengthProperty
The
BoundedSequenceDecorator decorates a Sequence whilst
bounding its size to a given maximum size (to be set via
setLength(int)) . In case the underlying Sequence is smaller
than the bounded size, then the BoundedSequenceDecorator will "bound"
to the smaller decorated Sequence's size. If the underlying Sequence
is greater than the bounded size, then the size if the underlying
Sequence appears through this decorator smaller, although it by
itself remains at its larger size. This functionality is useful when
allocating a buffer which by usages of the decorator appears smaller without
the need to copy the original sequence (thereby wasting bytes to be taken
care of by the garbage collector).
ATTENTION: Currently just the basic methods as well as the one required by
the SequenceSection are implemented, unimplemented methods throw an
UnsupportedOperationException exception. For manipulating a
Sequence with more complex operations, use the underlying (decorated)
Sequence.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.refcodes.mixin.InputStreamAccessor
org.refcodes.mixin.InputStreamAccessor.InputStreamBuilder<B extends org.refcodes.mixin.InputStreamAccessor.InputStreamBuilder<?>>, org.refcodes.mixin.InputStreamAccessor.InputStreamMutator, org.refcodes.mixin.InputStreamAccessor.InputStreamPropertyNested classes/interfaces inherited from interface org.refcodes.mixin.LengthAccessor
org.refcodes.mixin.LengthAccessor.LengthBuilder<B extends org.refcodes.mixin.LengthAccessor.LengthBuilder<B>>, org.refcodes.mixin.LengthAccessor.LengthMutator, org.refcodes.mixin.LengthAccessor.LengthPropertyNested classes/interfaces inherited from interface org.refcodes.mixin.OutputStreamAccessor
org.refcodes.mixin.OutputStreamAccessor.OutputStreamBuilder<B extends org.refcodes.mixin.OutputStreamAccessor.OutputStreamBuilder<?>>, org.refcodes.mixin.OutputStreamAccessor.OutputStreamMutator, org.refcodes.mixin.OutputStreamAccessor.OutputStreamProperty -
Constructor Summary
ConstructorsConstructorDescriptionBoundedSequenceDecorator(Sequence aSequence) Decorates the givenSequencewith a bounded maximum size, as soon as a bounded size greater than -1 is provided viasetLength(int).BoundedSequenceDecorator(Sequence aSequence, int aLengthBounds) Decorates the givenSequencewith a bounded maximum size. -
Method Summary
Modifier and TypeMethodDescriptionvoidappend(byte... aBytes) Appends the given bytes to the end of thisSequence.voidappend(byte[] aBytes, int aOffset, int aLength) Appends the given bytes to the end of thisSequence.voidvoidclear()Sets all bytes in theSequenceto zero.voidclear(byte aValue) Sets all bytes in theSequenceto the provided value.voidconcatenate(org.refcodes.mixin.ConcatenateMode aConcatenateMode, byte... aBytes) Concatenates the given bytes with thisSequenceaccording to the providedConcatenateMode.voidconcatenate(org.refcodes.mixin.ConcatenateMode aConcatenateMode, byte[] aBytes, int aOffset, int aLength) Concatenates the given bytes with thisSequenceaccording to the providedConcatenateMode.voidconcatenate(Sequence aSequence, org.refcodes.mixin.ConcatenateMode aConcatenateMode) voidempty()Empties theSequenceto end up being of length 0.voidbytegetByteAt(int aIndex) Returns the byte at the given index in theSequence.Creates anInputStreambacked by thisSequence.intA value of -1 indicates that the length bounds are disabled.Creates anOutputStreambacked by thisSequence.iterator()voidoverwrite(byte[] aBytes) Writes the given bytes into thisSequence.voidoverwrite(byte[] aBytes, int aLength) Writes the given bytes into thisSequence.voidoverwrite(int aOffset, byte[] aBytes) Writes the given bytes into thisSequence.voidoverwrite(int aOffset, byte[] aBytes, int aBytesOffset, int aLength) Writes the given bytes into thisSequence.voidvoidWrites the given bytes into thisSequence.voidvoidWrites the given bytes into thisSequence.voidprepend(byte... aBytes) Prepends the given bytes the beginning of thisSequence.voidprepend(byte[] aBytes, int aOffset, int aLength) Prepends the given bytes to the beginning of thisSequence.voidvoidreplace(byte[] aBytes) Replaces the given bytes with this byte array.voidreplace(byte[] aBytes, int aLength) Replaces the given bytes with this byte array.voidreplace(byte[] aBytes, int aOffset, int aLength) Replaces the given bytes with this byte array.voidvoidReplaces the given bytes with thisSequence.voidReplaces the given bytes with thisSequence.voidsetByteAt(int aIndex, byte aByte) Sets the byte at the given index in theSequence.voidsetLength(int aLength) A value of -1 disables any length bounds.toAppend(byte... aBytes) Appends the given bytes to the end of thisSequence.toAppend(byte[] aBytes, int aOffset, int aLength) Appends the given bytes to the end of thisSequence.byte[]toBytes()Retrieves a continuous array of bytes from theSequence.byte[]toBytes(int aOffset, int aLength) Retrieves a continuous array of bytes from theSequence, starting with the byte at the given offset and containing the given number of bytes.voidtoBytes(int aOffset, int aLength, byte[] aBytes, int aBytesOffset) Retrieves a continuous array of bytes from theSequence, starting with the byte at the given offset and covering the given number of bytes.toClone()Creates a deep clone of thisSequence.toConcatenate(org.refcodes.mixin.ConcatenateMode aConcatenateMode, byte... aBytes) Concatenates the given bytes with thisSequenceaccording to the providedConcatenateMode.toConcatenate(org.refcodes.mixin.ConcatenateMode aConcatenateMode, byte[] aBytes, int aOffset, int aLength) Concatenates the given bytes with thisSequenceaccording to the providedConcatenateMode.toConcatenate(Sequence aSequence, org.refcodes.mixin.ConcatenateMode aConcatenateMode) byte[]toCrcBytes(long aCrcChecksum, org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm, org.refcodes.numerical.Endianess aEndianess) Calculates the CRC checksum as byte array for thisSequence.byte[]toCrcBytes(org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm, org.refcodes.numerical.Endianess aEndianess) Calculates the CRC checksum as byte array for thisSequence.longtoCrcChecksum(long aCrcChecksum, org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm) Calculates the CRC checksum for thisSequence.longtoCrcChecksum(org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm) Calculates the CRC checksum for thisSequence.Creates anInputStreamform thisSequencewithout being backed by thisSequence, e.g. reading from the returnedInputStreamdoes not affect thisSequence(in contrast to theInputStreamreturned by the methodSequence.getInputStream()).toOverwrite(byte[] aBytes) Writes the given bytes into a copy of thisSequence.toOverwrite(byte[] aBytes, int aLength) Writes the given bytes into a copy of thisSequence.toOverwrite(int aOffset, byte[] aBytes) Writes the given bytes into a copy of thisSequence.toOverwrite(int aOffset, byte[] aBytes, int aBytesOffset, int aLength) Writes the given bytes into a copy of thisSequence.toOverwrite(int aOffset, Sequence aSequence) Writes the given bytes into a copy of thisSequence.toOverwrite(int aOffset, Sequence aSequence, int aBytesOffset, int aLength) toOverwrite(Sequence aSequence) Writes the given bytes into a copy of thisSequence.toOverwrite(Sequence aSequence, int aLength) Writes the given bytes into a copy of thisSequence.toPrepend(byte... aBytes) Prepends the given bytes to the beginning of thisSequence.toPrepend(byte[] aBytes, int aOffset, int aLength) Prepends the given bytes to the beginning of thisSequence.toSequence(int aOffset, int aLength) toTruncate(int aLength, org.refcodes.mixin.TruncateMode aTruncateMode) Returns a newSequencetruncated by the given number of bytes from the right or from the left of both, according to the givenTruncateMode.toTruncateHead(int aLength) Returns a newSequencetruncated by the given number of bytes from the left.toTruncateTail(int aLength) Returns a newSequencetruncated by the given number of bytes from the right.voidtruncate(int aLength, org.refcodes.mixin.TruncateMode aTruncateMode) Truncates theSequenceby the given number of bytes from the right or from the left of both, according to the givenTruncateMode.voidtruncateHead(int aLength) Truncates theSequenceby the given number of bytes from the left.voidtruncateTail(int aLength) Truncates theSequenceby the given number of bytes from the right.withAppend(byte... aBytes) Builder method for theSequence.append(byte...)method.withAppend(byte[] aBytes, int aOffset, int aLength) Builder method for theSequence.append(byte...)method.withAppend(Sequence aSequence) Builder method for theSequence.append(Sequence)method.withConcatenate(org.refcodes.mixin.ConcatenateMode aConcatenateMode, byte... aBytes) Builder method for theSequence.concatenate(ConcatenateMode, byte...)method.withConcatenate(Sequence aSequence, org.refcodes.mixin.ConcatenateMode aConcatenateMode) Builder method for theSequence.concatenate(Sequence, ConcatenateMode)method.withOverwrite(byte[] aBytes) Builder method for theSequence.overwrite(byte[])method.withOverwrite(byte[] aBytes, int aLength) Builder method for theSequence.overwrite(Sequence, int)method.withOverwrite(int aOffset, byte[] aBytes) Builder method for theSequence.overwrite(int, byte[])method.withOverwrite(int aOffset, byte[] aBytes, int aBytesOffset, int aLength) Builder method for theSequence.overwrite(int, byte[], int, int)method.withOverwrite(int aOffset, Sequence aSequence) Builder method for theSequence.overwrite(int, Sequence)method.withOverwrite(int aOffset, Sequence aSequence, int aSequenceOffset, int aLength) Builder method for theSequence.overwrite(int, Sequence, int, int)method.withOverwrite(Sequence aSequence) Builder method for theSequence.overwrite(Sequence)method.withOverwrite(Sequence aSequence, int aLength) Builder method for theSequence.overwrite(Sequence, int)method.withPrepend(byte... aBytes) Builder method for theSequence.prepend(byte...)method.withPrepend(byte[] aBytes, int aOffset, int aLength) Builder method for theSequence.prepend(byte...)method.withPrepend(Sequence aSequence) Builder method for theSequence.prepend(Sequence)method.withReplace(byte[] aBytes) Builder method for theSequence.replace(byte[])method.withReplace(byte[] aBytes, int aLength) Builder method for theSequence.replace(byte[], int, int)method.withReplace(byte[] aBytes, int aOffset, int aLength) Builder method for theSequence.replace(byte[], int, int)method.withReplace(Sequence aSequence) Builder method for theSequence.replace(Sequence)method.withReplace(Sequence aSequence, int aLength) Builder method for theSequence.replace(Sequence, int, int)method.withReplace(Sequence aSequence, int aOffset, int aLength) Builder method for theSequence.replace(Sequence, int, int)method.withTruncate(int aLength, org.refcodes.mixin.TruncateMode aTruncateMode) Builder method for theSequence.truncate(int, TruncateMode)method.withTruncateHead(int aLength) Builder method for theSequence.truncateHead(int)method.withTruncateTail(int aLength) Builder method for theSequence.truncateTail(int)method.voidwriteTo(OutputStream aOutputStream) Writes the content of the Sequence to the providedOutputStream.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.refcodes.mixin.LengthAccessor.LengthProperty
letLengthMethods inherited from interface org.refcodes.serial.Sequence
toHexString, toHexString
-
Constructor Details
-
BoundedSequenceDecorator
Decorates the givenSequencewith a bounded maximum size. -
BoundedSequenceDecorator
Decorates the givenSequencewith a bounded maximum size, as soon as a bounded size greater than -1 is provided viasetLength(int).- Parameters:
aSequence- TheSequenceto be decorated.
-
-
Method Details
-
getLength
public int getLength()A value of -1 indicates that the length bounds are disabled.- Specified by:
getLengthin interfaceorg.refcodes.mixin.LengthAccessor
-
setLength
public void setLength(int aLength) A value of -1 disables any length bounds.- Specified by:
setLengthin interfaceorg.refcodes.mixin.LengthAccessor.LengthMutator
-
iterator
-
forEach
-
append
public void append(byte... aBytes) Appends the given bytes to the end of thisSequence. Beware: ThisSequenceis modified! If you do not wish to modify thisSequence, please useSequence.toAppend(byte...). -
append
public void append(byte[] aBytes, int aOffset, int aLength) Appends the given bytes to the end of thisSequence. Beware: ThisSequenceis modified! If you do not wish to modify thisSequence, please useSequence.toAppend(byte[], int, int). -
spliterator
- Specified by:
spliteratorin interfaceIterable<Byte>
-
append
Appends the givenSequenceto the end of thisSequence. Beware: ThisSequenceis modified! If you do not wish to modify thisSequence, please useSequence.toAppend(Sequence). -
clear
public void clear()Sets all bytes in theSequenceto zero. -
clear
public void clear(byte aValue) Sets all bytes in theSequenceto the provided value. -
concatenate
public void concatenate(org.refcodes.mixin.ConcatenateMode aConcatenateMode, byte... aBytes) Concatenates the given bytes with thisSequenceaccording to the providedConcatenateMode. Beware: ThisSequenceis modified! If you do not wish to modify thisSequence, please useSequence.toConcatenate(ConcatenateMode, byte...).- Specified by:
concatenatein interfaceSequence- Parameters:
aConcatenateMode- The concatenation mode to be used.aBytes- The bytes to be concatenated with.
-
concatenate
public void concatenate(org.refcodes.mixin.ConcatenateMode aConcatenateMode, byte[] aBytes, int aOffset, int aLength) Concatenates the given bytes with thisSequenceaccording to the providedConcatenateMode. Beware: ThisSequenceis modified! If you do not wish to modify thisSequence, please useSequence.toConcatenate(ConcatenateMode, byte[], int, int).- Specified by:
concatenatein interfaceSequence- Parameters:
aConcatenateMode- The concatenation mode to be used.aBytes- The bytes to be concatenated with.aOffset- The offset from where to start collecting the bytes.aLength- The number of bytes to be concatenated.
-
concatenate
Concatenates the givenSequencewith thisSequenceaccording to the providedConcatenateMode. Beware: ThisSequenceis modified! If you do not wish to modify thisSequence, please useSequence.toConcatenate(Sequence, ConcatenateMode).- Specified by:
concatenatein interfaceSequence- Parameters:
aSequence- TheSequenceto be concatenated with.aConcatenateMode- The concatenation mode to be used.
-
empty
public void empty()Empties theSequenceto end up being of length 0. -
getByteAt
public byte getByteAt(int aIndex) Returns the byte at the given index in theSequence. -
getInputStream
Creates anInputStreambacked by thisSequence.- Specified by:
getInputStreamin interfaceorg.refcodes.mixin.InputStreamAccessor- Specified by:
getInputStreamin interfaceSequence
-
getOutputStream
Creates anOutputStreambacked by thisSequence.- Specified by:
getOutputStreamin interfaceorg.refcodes.mixin.OutputStreamAccessor- Specified by:
getOutputStreamin interfaceSequence
-
overwrite
public void overwrite(byte[] aBytes) -
overwrite
public void overwrite(byte[] aBytes, int aLength) -
overwrite
public void overwrite(int aOffset, byte[] aBytes) -
overwrite
public void overwrite(int aOffset, byte[] aBytes, int aBytesOffset, int aLength) -
overwrite
-
overwrite
-
overwrite
-
overwrite
-
prepend
public void prepend(byte... aBytes) Prepends the given bytes the beginning of thisSequence. Beware: ThisSequenceis modified! If you do not wish to modify thisSequence, please useSequence.toPrepend(byte...). -
prepend
public void prepend(byte[] aBytes, int aOffset, int aLength) Prepends the given bytes to the beginning of thisSequence. Beware: ThisSequenceis modified! If you do not wish to modify thisSequence, please useSequence.toPrepend(byte[], int, int). -
prepend
Prepends the givenSequenceto the beginning of thisSequence. Beware: ThisSequenceis modified! If you do not wish to modify thisSequence, please useSequence.toPrepend(Sequence). -
replace
public void replace(byte[] aBytes) Replaces the given bytes with this byte array. -
replace
public void replace(byte[] aBytes, int aLength) Replaces the given bytes with this byte array. -
replace
public void replace(byte[] aBytes, int aOffset, int aLength) Replaces the given bytes with this byte array. -
replace
-
replace
Replaces the given bytes with thisSequence. -
replace
Replaces the given bytes with thisSequence. -
setByteAt
public void setByteAt(int aIndex, byte aByte) Sets the byte at the given index in theSequence. -
toAppend
-
toAppend
-
toAppend
-
toBytes
public byte[] toBytes()Retrieves a continuous array of bytes from theSequence. -
toBytes
public byte[] toBytes(int aOffset, int aLength) Retrieves a continuous array of bytes from theSequence, starting with the byte at the given offset and containing the given number of bytes. -
toBytes
public void toBytes(int aOffset, int aLength, byte[] aBytes, int aBytesOffset) Retrieves a continuous array of bytes from theSequence, starting with the byte at the given offset and covering the given number of bytes. The bytes are stored in the provided bytes array starting at the given bytes' offset. -
toClone
Creates a deep clone of thisSequence. -
toConcatenate
Concatenates the given bytes with thisSequenceaccording to the providedConcatenateMode. ThisSequenceis not modified and a newSequenceis returned.- Specified by:
toConcatenatein interfaceSequence- Parameters:
aConcatenateMode- The concatenation mode to be used.aBytes- The bytes to be concatenated with.- Returns:
- The according
Sequence.
-
toConcatenate
public Sequence toConcatenate(org.refcodes.mixin.ConcatenateMode aConcatenateMode, byte[] aBytes, int aOffset, int aLength) Concatenates the given bytes with thisSequenceaccording to the providedConcatenateMode. ThisSequenceis not modified and a newSequenceis returned.- Specified by:
toConcatenatein interfaceSequence- Parameters:
aConcatenateMode- The concatenation mode to be used.aBytes- The bytes to be concatenated.aOffset- The offset from where to start collecting the bytes.aLength- The number of bytes to be concatenated with.- Returns:
- The according
Sequence.
-
toConcatenate
public Sequence toConcatenate(Sequence aSequence, org.refcodes.mixin.ConcatenateMode aConcatenateMode) Concatenates the givenSequencewith thisSequenceaccording to the providedConcatenateMode. ThisSequenceis not modified and a newSequenceis returned.- Specified by:
toConcatenatein interfaceSequence- Parameters:
aSequence- TheSequenceto be concatenated with.aConcatenateMode- The concatenation mode to be used.- Returns:
- The according
Sequence.
-
toCrcBytes
public byte[] toCrcBytes(org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm, org.refcodes.numerical.Endianess aEndianess) Calculates the CRC checksum as byte array for thisSequence.- Specified by:
toCrcBytesin interfaceSequence- Parameters:
aCrcAlgorithm- TheCrcAlgorithmto be used when calculating the CRC checksum.aEndianess- TheEndianess(little endian or big endian) to be used for the byte array representation of the CRC checksum.- Returns:
- The CRC checksum of the
Sequence.
-
toCrcBytes
public byte[] toCrcBytes(long aCrcChecksum, org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm, org.refcodes.numerical.Endianess aEndianess) Calculates the CRC checksum as byte array for thisSequence.- Specified by:
toCrcBytesin interfaceSequence- Parameters:
aCrcChecksum- The CRC checksum from which to continue calculating the checksum,aCrcAlgorithm- TheCrcAlgorithmto be used when calculating the CRC checksum.aEndianess- TheEndianess(little endian or big endian) to be used for the byte array representation of the CRC checksum.- Returns:
- The CRC checksum of the
Sequence.
-
toCrcChecksum
public long toCrcChecksum(org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm) Calculates the CRC checksum for thisSequence.- Specified by:
toCrcChecksumin interfaceSequence- Parameters:
aCrcAlgorithm- TheCrcAlgorithmto be used when calculating the CRC checksum.- Returns:
- The CRC checksum of the
Sequence.
-
toCrcChecksum
public long toCrcChecksum(long aCrcChecksum, org.refcodes.numerical.CrcAlgorithm aCrcAlgorithm) Calculates the CRC checksum for thisSequence.- Specified by:
toCrcChecksumin interfaceSequence- Parameters:
aCrcChecksum- The CRC checksum from which to continue calculating the checksum,aCrcAlgorithm- TheCrcAlgorithmto be used when calculating the CRC checksum.- Returns:
- The CRC checksum of the
Sequence.
-
toInputStream
Creates anInputStreamform thisSequencewithout being backed by thisSequence, e.g. reading from the returnedInputStreamdoes not affect thisSequence(in contrast to theInputStreamreturned by the methodSequence.getInputStream()).- Specified by:
toInputStreamin interfaceSequence- Returns:
- The according
InputStreamnot affecting thisSequence.
-
toOverwrite
Writes the given bytes into a copy of thisSequence. If theSequenceis too small for the bytes to fit into, then theSequenceis extended accordingly.- Specified by:
toOverwritein interfaceSequence- Parameters:
aBytes- The byte array where to copy the bytes from.- Returns:
- The according
Sequence.
-
toOverwrite
Writes the given bytes into a copy of thisSequence. If theSequenceis too small for the bytes to fit into, then theSequenceis extended accordingly.- Specified by:
toOverwritein interfaceSequence- Parameters:
aBytes- The byte array where to copy the bytes from.aLength- The number of bytes to be copied starting with offset 0.- Returns:
- The according
Sequence.
-
toOverwrite
Writes the given bytes into a copy of thisSequence. If theSequenceis too small for the bytes to fit into, then theSequenceis extended accordingly.- Specified by:
toOverwritein interfaceSequence- Parameters:
aOffset- The offset where to start writing the bytes to.aBytes- The byte array where to copy the bytes from.- Returns:
- The according
Sequence.
-
toOverwrite
Writes the given bytes into a copy of thisSequence. If theSequenceis too small for the bytes to fit into, then theSequenceis extended accordingly.- Specified by:
toOverwritein interfaceSequence- Parameters:
aOffset- The offset where to start writing the bytes to.aBytes- The byte array where to copy the bytes from.aBytesOffset- The offset in the byte array where to start copying.aLength- The number of bytes to be copied.- Returns:
- The according
Sequence.
-
toOverwrite
Writes the given bytes into a copy of thisSequence. If theSequenceis too small for the bytes to fit into, then theSequenceis extended accordingly.- Specified by:
toOverwritein interfaceSequence- Parameters:
aOffset- The offset where to start writing the bytes to.aSequence- TheSequencewhere to copy the bytes from.- Returns:
- The according
Sequence.
-
toOverwrite
Writes the givenSequenceinto a copy of thisSequence. If theSequenceis too small for the bytes to fit into, then theSequenceis extended accordingly.- Specified by:
toOverwritein interfaceSequence- Parameters:
aOffset- The offset where to start writing the bytes to.aSequence- TheSequencewhere to copy the bytes from.aBytesOffset- The offset in theSequencewhere to start copying.aLength- The number of bytes to be copied.- Returns:
- The according
Sequence.
-
toOverwrite
Writes the given bytes into a copy of thisSequence. If theSequenceis too small for the bytes to fit into, then theSequenceis extended accordingly.- Specified by:
toOverwritein interfaceSequence- Parameters:
aSequence- TheSequencewhere to copy the bytes from.- Returns:
- The according
Sequence.
-
toOverwrite
Writes the given bytes into a copy of thisSequence. If theSequenceis too small for the bytes to fit into, then theSequenceis extended accordingly.- Specified by:
toOverwritein interfaceSequence- Parameters:
aSequence- TheSequencewhere to copy the bytes from.aLength- The number of bytes to be copied starting with offset 0.- Returns:
- The according
Sequence.
-
toPrepend
-
toPrepend
-
toPrepend
-
toSequence
Retrieves a newSequencefrom thisSequence, starting with the byte at the given offset and containing the given number of bytes.- Specified by:
toSequencein interfaceSequence- Parameters:
aOffset- The offset from where to start collecting the bytes.aLength- The length of the byte array to be returned.- Returns:
- The according
TransmissionSequenceException.
-
toTruncate
Returns a newSequencetruncated by the given number of bytes from the right or from the left of both, according to the givenTruncateMode. If the number of bytes exceeds the actual length of theSequence, then the Sequence will end up being empty.- Specified by:
toTruncatein interfaceSequence- Parameters:
aLength- The number of bytes to truncate according to theTruncateMode.aTruncateMode- TheTruncateModeto use for truncating theSequence.- Returns:
- The newly created truncated
Sequence.
-
toTruncateHead
Returns a newSequencetruncated by the given number of bytes from the left. If the number of bytes exceeds the actual length of theSequence, then the newSequencewill end up being empty.- Specified by:
toTruncateHeadin interfaceSequence- Parameters:
aLength- The number of bytes to truncate from the left.- Returns:
- The newly created truncated
Sequence.
-
toTruncateTail
Returns a newSequencetruncated by the given number of bytes from the right. If the number of bytes exceeds the actual length of theSequence, then the newSequencewill end up being empty.- Specified by:
toTruncateTailin interfaceSequence- Parameters:
aLength- The number of bytes to truncate from the right.- Returns:
- The newly created truncated
Sequence.
-
truncate
public void truncate(int aLength, org.refcodes.mixin.TruncateMode aTruncateMode) -
truncateHead
public void truncateHead(int aLength) Truncates theSequenceby the given number of bytes from the left. If the number of bytes exceeds the actual length of theSequence, then theSequencewill end up being empty.- Specified by:
truncateHeadin interfaceSequence- Parameters:
aLength- The number of bytes to truncate from the left.
-
truncateTail
public void truncateTail(int aLength) Truncates theSequenceby the given number of bytes from the right. If the number of bytes exceeds the actual length of theSequence, then theSequencewill end up being empty.- Specified by:
truncateTailin interfaceSequence- Parameters:
aLength- The number of bytes to truncate from the right.
-
withAppend
Builder method for theSequence.append(byte...)method.- Specified by:
withAppendin interfaceSequence- Parameters:
aBytes- The bytes to be appended.- Returns:
- This instance as of the builder pattern.
-
withAppend
Builder method for theSequence.append(byte...)method.- Specified by:
withAppendin interfaceSequence- Parameters:
aBytes- The bytes to be appended.aOffset- The offset from where to start collecting the bytes.aLength- The number of bytes to be appended.- Returns:
- This instance as of the builder pattern.
-
withAppend
Builder method for theSequence.append(Sequence)method.- Specified by:
withAppendin interfaceSequence- Parameters:
aSequence- TheSequenceto be appended.- Returns:
- This instance as of the builder pattern.
-
withConcatenate
public Sequence withConcatenate(org.refcodes.mixin.ConcatenateMode aConcatenateMode, byte... aBytes) Builder method for theSequence.concatenate(ConcatenateMode, byte...)method.- Specified by:
withConcatenatein interfaceSequence- Parameters:
aConcatenateMode- The concatenation mode to be used.aBytes- The bytes to be concatenated with.- Returns:
- This instance as of the builder pattern.
-
withConcatenate
public Sequence withConcatenate(Sequence aSequence, org.refcodes.mixin.ConcatenateMode aConcatenateMode) Builder method for theSequence.concatenate(Sequence, ConcatenateMode)method.- Specified by:
withConcatenatein interfaceSequence- Parameters:
aSequence- TheSequenceto be concatenated withaConcatenateMode- The concatenation mode to be used.- Returns:
- This instance as of the builder pattern.
-
withOverwrite
Builder method for theSequence.overwrite(byte[])method.- Specified by:
withOverwritein interfaceSequence- Parameters:
aBytes- The byte array where to copy the bytes from.- Returns:
- This instance as of the builder pattern.
-
withOverwrite
Builder method for theSequence.overwrite(Sequence, int)method.- Specified by:
withOverwritein interfaceSequence- Parameters:
aBytes- The bytes where to copy the bytes from.aLength- The number of bytes to be copied starting at offset 0.- Returns:
- This instance as of the builder pattern.
-
withOverwrite
Builder method for theSequence.overwrite(int, byte[])method.- Specified by:
withOverwritein interfaceSequence- Parameters:
aOffset- The offset where to start writing the bytes to.aBytes- The byte array where to copy the bytes from.- Returns:
- This instance as of the builder pattern.
-
withOverwrite
Builder method for theSequence.overwrite(int, byte[], int, int)method.- Specified by:
withOverwritein interfaceSequence- Parameters:
aOffset- The offset where to start writing the bytes to.aBytes- The byte array where to copy the bytes from.aBytesOffset- The offset in the byte array where to start copying.aLength- The number of bytes to be copied.- Returns:
- This instance as of the builder pattern.
-
withOverwrite
Builder method for theSequence.overwrite(int, Sequence)method.- Specified by:
withOverwritein interfaceSequence- Parameters:
aOffset- The offset where to start writing the bytes to.aSequence- TheSequencewhere to copy the bytes from.- Returns:
- This instance as of the builder pattern.
-
withOverwrite
Builder method for theSequence.overwrite(int, Sequence, int, int)method.- Specified by:
withOverwritein interfaceSequence- Parameters:
aOffset- The offset where to start writing the bytes to.aSequence- TheSequencewhere to copy the bytes from.aSequenceOffset- The offset in the byte array where to start copying.aLength- The number of bytes to be copied.- Returns:
- This instance as of the builder pattern.
-
withOverwrite
Builder method for theSequence.overwrite(Sequence)method.- Specified by:
withOverwritein interfaceSequence- Parameters:
aSequence- TheSequencewhere to copy the bytes from.- Returns:
- This instance as of the builder pattern.
-
withOverwrite
Builder method for theSequence.overwrite(Sequence, int)method.- Specified by:
withOverwritein interfaceSequence- Parameters:
aSequence- TheSequencewhere to copy the bytes from.aLength- The number of bytes to be copied starting at offset 0.- Returns:
- This instance as of the builder pattern.
-
withPrepend
Builder method for theSequence.prepend(byte...)method.- Specified by:
withPrependin interfaceSequence- Parameters:
aBytes- The bytes to be prepended.- Returns:
- This instance as of the builder pattern.
-
withPrepend
Builder method for theSequence.prepend(byte...)method.- Specified by:
withPrependin interfaceSequence- Parameters:
aBytes- The bytes to be prepended.aOffset- The offset from where to start collecting the bytes.aLength- The number of bytes to be prepended.- Returns:
- This instance as of the builder pattern.
-
withPrepend
Builder method for theSequence.prepend(Sequence)method.- Specified by:
withPrependin interfaceSequence- Parameters:
aSequence- TheSequenceto be prepended.- Returns:
- This instance as of the builder pattern.
-
withReplace
Builder method for theSequence.replace(byte[])method.- Specified by:
withReplacein interfaceSequence- Parameters:
aBytes- The byte array where to copy the bytes from.- Returns:
- This instance as of the builder pattern.
-
withReplace
Builder method for theSequence.replace(byte[], int, int)method.- Specified by:
withReplacein interfaceSequence- Parameters:
aBytes- The byte array where to copy the bytes from.aLength- The number of bytes to be copied starting at offset 0.- Returns:
- This instance as of the builder pattern.
-
withReplace
Builder method for theSequence.replace(Sequence, int, int)method.- Specified by:
withReplacein interfaceSequence- Parameters:
aSequence- The byteSequencewhere to copy the bytes from.aLength- The number of bytes to be copied starting at offset 0.- Returns:
- This instance as of the builder pattern.
-
withReplace
Builder method for theSequence.replace(byte[], int, int)method.- Specified by:
withReplacein interfaceSequence- Parameters:
aBytes- The byte array where to copy the bytes from.aOffset- The offset in the byte array where to start copying.aLength- The number of bytes to be copied.- Returns:
- This instance as of the builder pattern.
-
withReplace
Builder method for theSequence.replace(Sequence)method.- Specified by:
withReplacein interfaceSequence- Parameters:
aSequence- TheSequencewhere to copy the bytes from.- Returns:
- This instance as of the builder pattern.
-
withReplace
Builder method for theSequence.replace(Sequence, int, int)method.- Specified by:
withReplacein interfaceSequence- Parameters:
aSequence- TheSequencewhere to copy the bytes from.aOffset- The offset in the byte array where to start copying.aLength- The number of bytes to be copied.- Returns:
- This instance as of the builder pattern.
-
withTruncate
Builder method for theSequence.truncate(int, TruncateMode)method.- Specified by:
withTruncatein interfaceSequence- Parameters:
aLength- The number of bytes to truncate according to theTruncateMode.aTruncateMode- TheTruncateModeto use for truncating theSequence.- Returns:
- This instance as of the builder pattern.
-
withTruncateHead
Builder method for theSequence.truncateHead(int)method.- Specified by:
withTruncateHeadin interfaceSequence- Parameters:
aLength- The number of bytes to truncate.- Returns:
- This instance as of the builder pattern.
-
withTruncateTail
Builder method for theSequence.truncateTail(int)method.- Specified by:
withTruncateTailin interfaceSequence- Parameters:
aLength- The number of bytes to truncate.- Returns:
- This instance as of the builder pattern.
-
writeTo
Writes the content of the Sequence to the providedOutputStream.- Specified by:
writeToin interfaceSequence- Parameters:
aOutputStream- TheOutputStreamwhere to write to.- Throws:
IOException- thrown in case of I/O problems.
-