Class ByteArrayBuilder

    • Constructor Summary

      Constructors 
      Constructor Description
      ByteArrayBuilder()
      Constructs a ByteArrayBuilder.
      ByteArrayBuilder​(int capacity)
      Constructs a ByteArrayBuilder.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      ByteArrayBuilder appendBoolean​(boolean b)
      Append a boolean to this ByteArrayBuilder.
      ByteArrayBuilder appendByte​(int b)
      Append a byte to this ByteArrayBuilder.
      ByteArrayBuilder appendByteArray​(byte[] bytes)
      Append all the bytes from the byte array to this ByteArrayBuilder.
      ByteArrayBuilder appendCSN​(CSN csn)
      Append a CSN to this ByteArrayBuilder.
      ByteArrayBuilder appendCSNUTF8​(CSN csn)
      Append a CSN to this ByteArrayBuilder by converting it to a String then encoding that string to a UTF-8 byte array.
      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.
      ByteArrayBuilder appendInt​(int i)
      Append an int to this ByteArrayBuilder.
      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.
      ByteArrayBuilder appendLong​(long l)
      Append a long to this ByteArrayBuilder.
      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.
      ByteArrayBuilder appendServerStateMustComeLast​(ServerState serverState)
      Append the byte representation of a ServerState to this ByteArrayBuilder and then append a final zero byte separator.
      ByteArrayBuilder appendShort​(int s)
      Append a short to this ByteArrayBuilder.
      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.
      ByteArrayBuilder appendStrings​(Collection<String> col)
      Append a Collection of Strings to this ByteArrayBuilder.
      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.
      static int booleans​(int nbFields)
      Helper method that returns the number of bytes that would be used by the boolean fields when appended to a ByteArrayBuilder.
      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.
      static int csns​(int nbFields)
      Helper method that returns the number of bytes that would be used by the CSN fields when appended to a ByteArrayBuilder.
      static int csnsUTF8​(int nbFields)
      Helper method that returns the number of bytes that would be used by the CSN fields encoded as a UTF8 string when appended to a ByteArrayBuilder.
      ASN1Writer getASN1Writer()
      Returns a new ASN1Writer that will append bytes to this ByteArrayBuilder.
      static int ints​(int nbFields)
      Helper method that returns the number of bytes that would be used by the int fields when appended to a ByteArrayBuilder.
      static int longs​(int nbFields)
      Helper method that returns the number of bytes that would be used by the long fields when appended to a ByteArrayBuilder.
      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.
      byte[] toByteArray()
      Converts the content of this ByteStringBuilder to a byte array.
      String toString()
    • 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
      • appendCSN

        public ByteArrayBuilder appendCSN​(CSN csn)
        Append a CSN to this ByteArrayBuilder.
        Parameters:
        csn - the CSN to append.
        Returns:
        this ByteArrayBuilder
      • appendCSNUTF8

        public ByteArrayBuilder appendCSNUTF8​(CSN csn)
        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.
        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
      • 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 serverId 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()
      • getASN1Writer

        public ASN1Writer getASN1Writer()
        Returns a new ASN1Writer that will append bytes to this ByteArrayBuilder.
        Returns:
        a new ASN1Writer that will append bytes to this ByteArrayBuilder.
      • 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.
      • booleans

        public static int booleans​(int nbFields)
        Helper method that returns the number of bytes that would be used by the boolean fields when appended to a ByteArrayBuilder.
        Parameters:
        nbFields - the number of boolean fields that will be appended to a ByteArrayBuilder
        Returns:
        the number of bytes occupied by the appended boolean fields.
      • 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.
      • ints

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

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

        public static int csns​(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.
      • csnsUTF8

        public static int csnsUTF8​(int nbFields)
        Helper method that returns the number of bytes that would be used by the CSN fields encoded as a UTF8 string 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 legacy-encoded CSN fields.