Class ByteArrayBuilder

    • Constructor Detail

      • ByteArrayBuilder

        public ByteArrayBuilder()
        Constructs a ByteArrayBuilder.
      • ByteArrayBuilder

        public ByteArrayBuilder​(int capacity)
        Constructs a ByteArrayBuilder.
        Parameters:
        capacity - the capacity of the underlying ByteStringBuilder
    • Method Detail

      • appendBoolean

        public ByteArrayBuilder appendBoolean​(boolean b)
        Append a boolean to this ByteArrayBuilder.
        Parameters:
        b - the boolean to append.
        Returns:
        this ByteArrayBuilder
      • appendByte

        public ByteArrayBuilder appendByte​(int b)
        Append a byte to this ByteArrayBuilder.
        Parameters:
        b - the byte to append.
        Returns:
        this ByteArrayBuilder
      • appendShort

        public ByteArrayBuilder appendShort​(int s)
        Append a short to this ByteArrayBuilder.
        Parameters:
        s - the short to append.
        Returns:
        this ByteArrayBuilder
      • appendInt

        public ByteArrayBuilder appendInt​(int i)
        Append an int to this ByteArrayBuilder.
        Parameters:
        i - the long to append.
        Returns:
        this ByteArrayBuilder
      • appendLong

        public ByteArrayBuilder appendLong​(long l)
        Append a long to this ByteArrayBuilder.
        Parameters:
        l - the long to append.
        Returns:
        this ByteArrayBuilder
      • appendIntUtf8

        public ByteArrayBuilder appendIntUtf8​(int i)
        Append an int to this ByteArrayBuilder by converting it to a String then encoding that string to a UTF-8 byte array.
        Parameters:
        i - the int to append.
        Returns:
        this ByteArrayBuilder
      • appendLongUtf8

        public ByteArrayBuilder appendLongUtf8​(long l)
        Append a long to this ByteArrayBuilder by converting it to a String then encoding that string to a UTF-8 byte array.
        Parameters:
        l - the long to append.
        Returns:
        this ByteArrayBuilder
      • appendStrings

        public ByteArrayBuilder appendStrings​(Collection<String> col)
        Append a Collection of Strings to this ByteArrayBuilder.
        Parameters:
        col - the Collection of Strings to append.
        Returns:
        this ByteArrayBuilder
      • appendString

        public ByteArrayBuilder appendString​(String s)
        Append a String with a zero separator to this ByteArrayBuilder, or only the zero separator if the string is null or if the string length is zero.
        Parameters:
        s - the String to append. Can be null.
        Returns:
        this ByteArrayBuilder
      • appendUUID

        public ByteArrayBuilder appendUUID​(UUID uuid)
        Append an UUID with a zero separator to this ByteArrayBuilder, or only the zero separator if the UUID is null.
        Parameters:
        uuid - the UUID to append. Can be null.
        Returns:
        this ByteArrayBuilder
      • appendGroupId

        public ByteArrayBuilder appendGroupId​(com.forgerock.opendj.discovery.GroupId groupId)
        Appends the encoded version of a GroupId to this ByteArrayBuilder.
        Parameters:
        groupId - the group id to append.
        Returns:
        this ByteArrayBuilder
      • appendReplicaId

        public ByteArrayBuilder appendReplicaId​(ReplicaId replicaId)
        Appends the encoded version of this ReplicaId to this ByteArrayBuilder.
        Parameters:
        replicaId - the replica id to append.
        Returns:
        this ByteArrayBuilder
      • appendReplicationServerId

        public ByteArrayBuilder appendReplicationServerId​(ReplicationServerId replicationServerId)
        Appends the encoded version of this ReplicationServerId to this ByteArrayBuilder.
        Parameters:
        replicationServerId - the replication server id to append.
        Returns:
        this ByteArrayBuilder
      • appendServerId

        public ByteArrayBuilder appendServerId​(ServerId<?> serverId)
        Appends a server id.
        Parameters:
        serverId - the ServerId to append.
        Returns:
        this ByteArrayBuilder
      • appendCsn

        public ByteArrayBuilder appendCsn​(CSN csn,
                                          CSN.CsnVersion version)
        Append a CSN to this ByteArrayBuilder.
        Parameters:
        csn - the CSN to append.
        version - the CSN version to use for encoding
        Returns:
        this ByteArrayBuilder
      • appendCsnUtf8

        public ByteArrayBuilder appendCsnUtf8​(CSN csn,
                                              CSN.CsnVersion version)
        Append a CSN to this ByteArrayBuilder by converting it to a String then encoding that string to a UTF-8 byte array.
        Parameters:
        csn - the CSN to append.
        version - the CSN version to use for encoding.
        Returns:
        this ByteArrayBuilder
      • appendDn

        public ByteArrayBuilder appendDn​(Dn dn)
        Append a DN to this ByteArrayBuilder by converting it to a String then encoding that string to a UTF-8 byte array.
        Parameters:
        dn - the DN to append.
        Returns:
        this ByteArrayBuilder
      • appendRdn

        public ByteArrayBuilder appendRdn​(Rdn rdn)
        Append an RDN to this ByteArrayBuilder by converting it to a String then encoding that string to a UTF-8 byte array.
        Parameters:
        rdn - the RDN to append.
        Returns:
        this ByteArrayBuilder
      • appendByteArray

        public ByteArrayBuilder appendByteArray​(byte[] bytes)
        Append all the bytes from the byte array to this ByteArrayBuilder.
        Parameters:
        bytes - the byte array to append.
        Returns:
        this ByteArrayBuilder
      • appendZeroTerminatedByteArray

        public ByteArrayBuilder appendZeroTerminatedByteArray​(byte[] bytes)
        Append all the bytes from the byte array to this ByteArrayBuilder and then append a final zero byte separator for compatibility with legacy implementations.

        Note: the super long method name it is intentional: nobody will want to use it, which is good because nobody should.

        Parameters:
        bytes - the byte array to append.
        Returns:
        this ByteArrayBuilder
      • appendServerStateMustComeLast

        public ByteArrayBuilder appendServerStateMustComeLast​(ServerState serverState)
        Append the byte representation of a ServerState to this ByteArrayBuilder and then append a final zero byte separator.

        Caution: ServerState MUST be the last field. Because ServerState can contain null character (string termination of replica id string ..) it cannot be decoded using ByteArrayScanner.nextString() like the other fields. The only way is to rely on the end of the input buffer: and that forces the ServerState to be the last field. This should be changed if we want to have more than one ServerState field.

        Note: the super long method name it is intentional: nobody will want to use it, which is good because nobody should.

        Parameters:
        serverState - the ServerState to append.
        Returns:
        this ByteArrayBuilder
        See Also:
        ByteArrayScanner.nextServerStateMustComeLast()
      • toByteArray

        public byte[] toByteArray()
        Converts the content of this ByteStringBuilder to a byte array.
        Returns:
        the content of this ByteStringBuilder converted to a byte array.
      • bytes

        public static int bytes​(int nbFields)
        Helper method that returns the number of bytes that would be used by the byte fields when appended to a ByteArrayBuilder.
        Parameters:
        nbFields - the number of byte fields that will be appended to a ByteArrayBuilder
        Returns:
        the number of bytes occupied by the appended byte fields.
      • shorts

        public static int shorts​(int nbFields)
        Helper method that returns the number of bytes that would be used by the short fields when appended to a ByteArrayBuilder.
        Parameters:
        nbFields - the number of short fields that will be appended to a ByteArrayBuilder
        Returns:
        the number of bytes occupied by the appended short fields.
      • csnsV1

        public static int csnsV1​(int nbFields)
        Helper method that returns the number of bytes that would be used by the CSN fields when appended to a ByteArrayBuilder.
        Parameters:
        nbFields - the number of CSN fields that will be appended to a ByteArrayBuilder
        Returns:
        the number of bytes occupied by the appended CSN fields.