Class ByteArrayScanner
- java.lang.Object
- 
- org.opends.server.replication.protocol.ByteArrayScanner
 
- 
 public final class ByteArrayScanner extends Object Byte array scanner class helps decode data from byte arrays received via messages over the replication protocol. Built on top ofByteSequenceReader, it isolates the latter against legacy type conversions from the replication protocol.
- 
- 
Constructor SummaryConstructors Constructor Description ByteArrayScanner(byte[] bytes)Builds a ByteArrayScanner object that will read from the supplied byte array.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description Asn1ReadergetAsn1Reader()Returns a new ASN1Reader that will read bytes from this ByteArrayScanner.booleanisEmpty()Returns whether the scanner has more bytes to consume.booleannextBoolean()Reads the next boolean.bytenextByte()Reads the next byte.byte[]nextByteArray(int length)Return a new byte array containing the requested number of bytes.CSNnextCsn()Reads the next CSN.CSNnextCsnUtf8()Reads the next CSN that was encoded as a UTF8 string.DnnextDn()Reads the next DN.com.forgerock.opendj.discovery.GroupIdnextGroupId()Reads the next group id.intnextInt()Reads the next int.intnextIntUtf8()Reads the next int that was encoded as a UTF8 string.longnextLong()Reads the next long.longnextLongUtf8()Reads the next long that was encoded as a UTF8 string.RdnnextRdn()Reads the next RDN.ReplicaIdnextReplicaId()Reads the next replica id.ReplicationServerIdnextReplicationServerId()Reads the next replication server id.ServerId<?>nextServerId()Reads the next replication server id or replica id.ServerStatenextServerStateMustComeLast()Reads the next ServerState.shortnextShort()Reads the next short.StringnextString()Reads the next UTF8-encoded string.<T extends Collection<String>>
 TnextStrings(T output)Reads the next UTF8-encoded strings in the provided collection.UUIDnextUUID()Reads the next UUID.byte[]remainingBytes()Return a new byte array containing all remaining bytes in this ByteArrayScanner.byte[]remainingBytesZeroTerminated()Return a new byte array containing all remaining bytes in this ByteArrayScanner bar the last one which is a zero terminated byte (compatible with legacy code).voidskipZeroSeparator()Skips the next byte and verifies it is effectively the zero separator.StringtoString()
 
- 
- 
- 
Method Detail- 
nextBooleanpublic boolean nextBoolean() throws DataFormatExceptionReads the next boolean.- Returns:
- the next boolean
- Throws:
- DataFormatException- if no more data can be read from the input
 
 - 
nextBytepublic byte nextByte() throws DataFormatExceptionReads the next byte.- Returns:
- the next byte
- Throws:
- DataFormatException- if no more data can be read from the input
 
 - 
nextShortpublic short nextShort() throws DataFormatExceptionReads the next short.- Returns:
- the next short
- Throws:
- DataFormatException- if no more data can be read from the input
 
 - 
nextIntpublic int nextInt() throws DataFormatExceptionReads the next int.- Returns:
- the next int
- Throws:
- DataFormatException- if no more data can be read from the input
 
 - 
nextLongpublic long nextLong() throws DataFormatExceptionReads the next long.- Returns:
- the next long
- Throws:
- DataFormatException- if no more data can be read from the input
 
 - 
nextIntUtf8public int nextIntUtf8() throws DataFormatExceptionReads the next int that was encoded as a UTF8 string.- Returns:
- the next int that was encoded as a UTF8 string.
- Throws:
- DataFormatException- if no more data can be read from the input
 
 - 
nextLongUtf8public long nextLongUtf8() throws DataFormatExceptionReads the next long that was encoded as a UTF8 string.- Returns:
- the next long that was encoded as a UTF8 string.
- Throws:
- DataFormatException- if no more data can be read from the input
 
 - 
nextStringpublic String nextString() throws DataFormatException Reads the next UTF8-encoded string.- Returns:
- the next UTF8-encoded string or null if the string length is zero
- Throws:
- DataFormatException- if no more data can be read from the input
 
 - 
nextUUIDpublic UUID nextUUID() throws DataFormatException Reads the next UUID.- Returns:
- the next UUID or nullif there is no UUID
- Throws:
- DataFormatException- if no more data can be read from the input
 
 - 
nextStringspublic <T extends Collection<String>> T nextStrings(T output) throws DataFormatException Reads the next UTF8-encoded strings in the provided collection.- Type Parameters:
- T- the collection's concrete type
- Parameters:
- output- the collection where to add the next UTF8-encoded strings
- Returns:
- the provided collection where the next UTF8-encoded strings have been added.
- Throws:
- DataFormatException- if no more data can be read from the input
 
 - 
nextGroupIdpublic com.forgerock.opendj.discovery.GroupId nextGroupId() throws DataFormatExceptionReads the next group id.- Returns:
- the next group id.
- Throws:
- DataFormatException- if group id was incorrectly encoded or no more data can be read from the input
 
 - 
nextReplicationServerIdpublic ReplicationServerId nextReplicationServerId() throws DataFormatException Reads the next replication server id.- Returns:
- the next replication server id.
- Throws:
- DataFormatException- if a replication server id is not present or no more data can be read from the input
 
 - 
nextServerIdpublic ServerId<?> nextServerId() throws DataFormatException Reads the next replication server id or replica id.- Returns:
- the next ReplicaIdorReplicationServerId
- Throws:
- DataFormatException- if a neither a replica id or replication server id is not present, or no more data can be read from the input
 
 - 
nextReplicaIdpublic ReplicaId nextReplicaId() throws DataFormatException Reads the next replica id.- Returns:
- the next replica id.
- Throws:
- DataFormatException- if a replica id is not present or no more data can be read from the input
 
 - 
nextCsnpublic CSN nextCsn() throws DataFormatException Reads the next CSN.- Returns:
- the next CSN.
- Throws:
- DataFormatException- if CSN was incorrectly encoded or no more data can be read from the input
 
 - 
nextCsnUtf8public CSN nextCsnUtf8() throws DataFormatException Reads the next CSN that was encoded as a UTF8 string.- Returns:
- the next CSN that was encoded as a UTF8 string.
- Throws:
- DataFormatException- if legacy CSN was incorrectly encoded or no more data can be read from the input
 
 - 
nextDnpublic Dn nextDn() throws DataFormatException Reads the next DN.- Returns:
- the next DN or nullif there is no DN.
- Throws:
- DataFormatException- if DN was incorrectly encoded or no more data can be read from the input
 
 - 
nextRdnpublic Rdn nextRdn() throws DataFormatException Reads the next RDN.- Returns:
- the next RDN or nullif there is no RDN.
- Throws:
- DataFormatException- if DN was incorrectly encoded or no more data can be read from the input
 
 - 
remainingBytespublic byte[] remainingBytes() Return a new byte array containing all remaining bytes in this ByteArrayScanner.- Returns:
- new byte array containing all remaining bytes
 
 - 
remainingBytesZeroTerminatedpublic byte[] remainingBytesZeroTerminated() Return a new byte array containing all remaining bytes in this ByteArrayScanner bar the last one which is a zero terminated byte (compatible with legacy code).- Returns:
- new byte array containing all remaining bytes bar the last one
 
 - 
nextByteArraypublic byte[] nextByteArray(int length) Return a new byte array containing the requested number of bytes.- Parameters:
- length- the number of bytes to be read and copied to the new byte array.
- Returns:
- new byte array containing the requested number of bytes.
 
 - 
nextServerStateMustComeLastpublic ServerState nextServerStateMustComeLast() throws DataFormatException Reads the next ServerState.Caution: ServerState MUST be the last field (see ByteArrayBuilder.appendServerStateMustComeLast(ServerState)javadoc).Note: the super long method name it is intentional: nobody will want to use it, which is good because nobody should. - Returns:
- the next ServerState.
- Throws:
- DataFormatException- if ServerState was incorrectly encoded or no more data can be read from the input
- See Also:
- ByteArrayBuilder.appendServerStateMustComeLast(ServerState)
 
 - 
skipZeroSeparatorpublic void skipZeroSeparator() throws DataFormatExceptionSkips the next byte and verifies it is effectively the zero separator.- Throws:
- DataFormatException- if the next byte is not the zero separator.
 
 - 
getAsn1Readerpublic Asn1Reader getAsn1Reader() Returns a new ASN1Reader that will read bytes from this ByteArrayScanner.- Returns:
- a new ASN1Reader that will read bytes from this ByteArrayScanner.
 
 - 
isEmptypublic boolean isEmpty() Returns whether the scanner has more bytes to consume.- Returns:
- true if the scanner has more bytes to consume, false otherwise.
 
 
- 
 
-