Module 
Package org.xnio

Class ByteString

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.CharSequence, java.lang.Comparable<ByteString>

    public final class ByteString
    extends java.lang.Object
    implements java.lang.Comparable<ByteString>, java.io.Serializable, java.lang.CharSequence
    An immutable string of bytes. Since instances of this class are guaranteed to be immutable, they are safe to use as Option values and in an OptionMap. Some operations can treat this byte string as an ASCII- or ISO-8858-1-encoded character string.
    See Also:
    Serialized Form
    • Method Detail

      • of

        public static ByteString of​(byte... bytes)
        Create a byte string of the given literal bytes. The given array is copied.
        Parameters:
        bytes - the bytes
        Returns:
        the byte string
      • copyOf

        public static ByteString copyOf​(byte[] b,
                                        int offs,
                                        int len)
        Create a byte string from the given array segment.
        Parameters:
        b - the byte array
        offs - the offset into the array
        len - the number of bytes to copy
        Returns:
        the new byte string
      • getBytes

        public static ByteString getBytes​(java.lang.String str,
                                          java.lang.String charset)
                                   throws java.io.UnsupportedEncodingException
        Get a byte string from the bytes of a character string.
        Parameters:
        str - the character string
        charset - the character set to use
        Returns:
        the byte string
        Throws:
        java.io.UnsupportedEncodingException - if the encoding is not supported
      • getBytes

        public static ByteString getBytes​(java.lang.String str,
                                          java.nio.charset.Charset charset)
        Get a byte string from the bytes of a character string.
        Parameters:
        str - the character string
        charset - the character set to use
        Returns:
        the byte string
      • getBytes

        public static ByteString getBytes​(java.lang.String str)
        Get a byte string from the bytes of the character string. The string must be a Latin-1 string.
        Parameters:
        str - the character string
        Returns:
        the byte string
      • getBytes

        public static ByteString getBytes​(java.nio.ByteBuffer buffer)
        Get a byte string from all remaining bytes of a ByteBuffer.
        Parameters:
        buffer - the buffer
        Returns:
        the byte string
      • getBytes

        public static ByteString getBytes​(java.nio.ByteBuffer buffer,
                                          int length)
        Get a byte string from a ByteBuffer.
        Parameters:
        buffer - the buffer
        length - the number of bytes to get
        Returns:
        the byte string
      • getBytes

        public byte[] getBytes()
        Get a copy of the bytes of this ByteString.
        Returns:
        the copy
      • getBytes

        public void getBytes​(byte[] dest)
        Deprecated.
        Replaced by copyTo(byte[]).
        Copy the bytes of this ByteString into the destination array. If the array is too short to hold the bytes, then only enough bytes to fill the array will be copied.
        Parameters:
        dest - the destination array
      • getBytes

        public void getBytes​(byte[] dest,
                             int offs)
        Deprecated.
        Replaced by copyTo(byte[],int).
        Copy the bytes of this ByteString into the destination array. If the array is too short to hold the bytes, then only enough bytes to fill the array will be copied.
        Parameters:
        dest - the destination array
        offs - the offset into the destination array
      • getBytes

        public void getBytes​(byte[] dest,
                             int offs,
                             int len)
        Deprecated.
        Copy the bytes of this ByteString into the destination array. If the array is too short to hold the bytes, then only enough bytes to fill the array will be copied.
        Parameters:
        dest - the destination array
        offs - the offset into the destination array
        len - the maximum number of bytes to copy
      • copyTo

        public void copyTo​(int srcOffs,
                           byte[] dst,
                           int offs,
                           int len)
        Copy len bytes from this string at offset srcOffs to the given array at the given offset.
        Parameters:
        srcOffs - the source offset
        dst - the destination
        offs - the destination offset
        len - the number of bytes to copy
      • copyTo

        public void copyTo​(byte[] dst,
                           int offs,
                           int len)
        Copy len bytes from this string to the given array at the given offset.
        Parameters:
        dst - the destination
        offs - the destination offset
        len - the number of bytes
      • copyTo

        public void copyTo​(byte[] dst,
                           int offs)
        Copy all the bytes from this string to the given array at the given offset.
        Parameters:
        dst - the destination
        offs - the destination offset
      • copyTo

        public void copyTo​(byte[] dst)
        Copy all the bytes from this string to the given array at the given offset.
        Parameters:
        dst - the destination
      • appendTo

        public void appendTo​(java.nio.ByteBuffer dest)
        Append the bytes of this string into the given buffer.
        Parameters:
        dest - the target buffer
      • tryAppendTo

        public int tryAppendTo​(int offs,
                               java.nio.ByteBuffer buffer)
        Append as many bytes as possible to a byte buffer.
        Parameters:
        offs - the start offset
        buffer - the buffer to append to
        Returns:
        the number of bytes appended
      • writeTo

        public void writeTo​(java.io.OutputStream output)
                     throws java.io.IOException
        Append to an output stream.
        Parameters:
        output - the stream to write to
        Throws:
        java.io.IOException - if an error occurs
      • compareTo

        public int compareTo​(ByteString other)
        Compare this string to another in a case-sensitive manner.
        Specified by:
        compareTo in interface java.lang.Comparable<ByteString>
        Parameters:
        other - the other string
        Returns:
        -1, 0, or 1
      • compareToIgnoreCase

        public int compareToIgnoreCase​(ByteString other)
        Compare this string to another in a case-insensitive manner.
        Parameters:
        other - the other string
        Returns:
        -1, 0, or 1
      • toString

        public java.lang.String toString​(java.lang.String charset)
                                  throws java.io.UnsupportedEncodingException
        Convert this byte string to a standard string.
        Parameters:
        charset - the character set to use
        Returns:
        the standard string
        Throws:
        java.io.UnsupportedEncodingException - if the charset is unknown
      • length

        public int length()
        Get the number of bytes in this byte string.
        Specified by:
        length in interface java.lang.CharSequence
        Returns:
        the number of bytes
      • toString

        public java.lang.String toString()
        Decode this byte string as a Latin-1 string.
        Specified by:
        toString in interface java.lang.CharSequence
        Overrides:
        toString in class java.lang.Object
        Returns:
        the Latin-1-decoded version of this string
      • toUtf8String

        public java.lang.String toUtf8String()
        Decode this byte string as a UTF-8 string.
        Returns:
        the UTF-8-decoded version of this string
      • byteAt

        public byte byteAt​(int idx)
        Get the byte at an index.
        Returns:
        the byte at an index
      • substring

        public ByteString substring​(int offs)
        Get the substring of this string starting at the given offset.
        Parameters:
        offs - the offset
        Returns:
        the substring
      • substring

        public ByteString substring​(int offs,
                                    int len)
        Get the substring of this string starting at the given offset.
        Parameters:
        offs - the offset
        len - the substring length
        Returns:
        the substring
      • hashCode

        public int hashCode()
        Get the hash code for this ByteString.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        the hash code
      • hashCodeIgnoreCase

        public int hashCodeIgnoreCase()
      • equals

        public boolean equals​(java.lang.Object obj)
        Determine if this ByteString equals another ByteString.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - the other object
        Returns:
        true if they are equal
      • equals

        public boolean equals​(ByteString other)
        Determine if this ByteString equals another ByteString.
        Parameters:
        other - the other object
        Returns:
        true if they are equal
      • equalsIgnoreCase

        public boolean equalsIgnoreCase​(ByteString other)
        Determine if this ByteString equals another ByteString, ignoring case (ASCII).
        Parameters:
        other - the other object
        Returns:
        true if they are equal
      • toInt

        public int toInt​(int start)
        Get the unsigned int value of this string. If the value is greater than would fit in 32 bits, only the low 32 bits are returned. Parsing stops on the first non-digit character.
        Parameters:
        start - the index to start at (must be less than or equal to length)
        Returns:
        the value
      • toInt

        public int toInt()
        Get the unsigned int value of this string. If the value is greater than would fit in 32 bits, only the low 32 bits are returned. Parsing stops on the first non-digit character.
        Returns:
        the value
      • toLong

        public long toLong​(int start)
        Get the unsigned long value of this string. If the value is greater than would fit in 64 bits, only the low 64 bits are returned. Parsing stops on the first non-digit character.
        Parameters:
        start - the index to start at (must be less than or equal to length)
        Returns:
        the value
      • toLong

        public long toLong()
        Get the unsigned long value of this string. If the value is greater than would fit in 64 bits, only the low 64 bits are returned. Parsing stops on the first non-digit character.
        Returns:
        the value
      • fromLong

        public static ByteString fromLong​(long val)
        Get a string version of the given value.
        Parameters:
        val - the value
        Returns:
        the string
      • fromInt

        public static ByteString fromInt​(int val)
        Get a string version of the given value.
        Parameters:
        val - the value
        Returns:
        the string
      • equalToString

        public boolean equalToString​(java.lang.String str)
        Determine whether this ByteString is equal (case-sensitively) to the given String.
        Parameters:
        str - the string to check
        Returns:
        true if the given string is equal (case-sensitively) to this instance, false otherwise
      • equalToStringIgnoreCase

        public boolean equalToStringIgnoreCase​(java.lang.String str)
        Determine whether this ByteString is equal (case-insensitively) to the given String.
        Parameters:
        str - the string to check
        Returns:
        true if the given string is equal (case-insensitively) to this instance, false otherwise
      • indexOf

        public int indexOf​(char c)
        Get the index of the given character in this string.
        Parameters:
        c - the character
        Returns:
        the index, or -1 if it was not found
      • indexOf

        public int indexOf​(char c,
                           int start)
        Get the index of the given character in this string.
        Parameters:
        c - the character
        Returns:
        the index, or -1 if it was not found
      • lastIndexOf

        public int lastIndexOf​(char c)
        Get the last index of the given character in this string.
        Parameters:
        c - the character
        Returns:
        the index, or -1 if it was not found
      • lastIndexOf

        public int lastIndexOf​(char c,
                               int start)
        Get the last index of the given character in this string.
        Parameters:
        c - the character
        Returns:
        the index, or -1 if it was not found
      • contains

        public boolean contains​(ByteString other)
        Determine whether this string contains another string (case-sensitive).
        Parameters:
        other - the string to test
        Returns:
        true if this string contains other, false otherwise
      • contains

        public boolean contains​(java.lang.String other)
        Determine whether this string contains another string (case-sensitive).
        Parameters:
        other - the string to test
        Returns:
        true if this string contains other, false otherwise
      • containsIgnoreCase

        public boolean containsIgnoreCase​(ByteString other)
        Determine whether this string contains another string (case-insensitive).
        Parameters:
        other - the string to test
        Returns:
        true if this string contains other, false otherwise
      • containsIgnoreCase

        public boolean containsIgnoreCase​(java.lang.String other)
        Determine whether this string contains another string (case-sensitive).
        Parameters:
        other - the string to test
        Returns:
        true if this string contains other, false otherwise
      • indexOf

        public int indexOf​(ByteString other)
      • indexOf

        public int indexOf​(ByteString other,
                           int start)
      • indexOf

        public int indexOf​(java.lang.String other)
      • indexOf

        public int indexOf​(java.lang.String other,
                           int start)
      • indexOfIgnoreCase

        public int indexOfIgnoreCase​(ByteString other)
      • indexOfIgnoreCase

        public int indexOfIgnoreCase​(ByteString other,
                                     int start)
      • indexOfIgnoreCase

        public int indexOfIgnoreCase​(java.lang.String other)
      • indexOfIgnoreCase

        public int indexOfIgnoreCase​(java.lang.String other,
                                     int start)
      • lastIndexOf

        public int lastIndexOf​(ByteString other)
      • lastIndexOf

        public int lastIndexOf​(ByteString other,
                               int start)
      • lastIndexOf

        public int lastIndexOf​(java.lang.String other)
      • lastIndexOf

        public int lastIndexOf​(java.lang.String other,
                               int start)
      • lastIndexOfIgnoreCase

        public int lastIndexOfIgnoreCase​(ByteString other)
      • lastIndexOfIgnoreCase

        public int lastIndexOfIgnoreCase​(ByteString other,
                                         int start)
      • lastIndexOfIgnoreCase

        public int lastIndexOfIgnoreCase​(java.lang.String other)
      • lastIndexOfIgnoreCase

        public int lastIndexOfIgnoreCase​(java.lang.String other,
                                         int start)
      • regionMatches

        public boolean regionMatches​(boolean ignoreCase,
                                     int offset,
                                     byte[] other,
                                     int otherOffset,
                                     int len)
      • regionMatches

        public boolean regionMatches​(boolean ignoreCase,
                                     int offset,
                                     ByteString other,
                                     int otherOffset,
                                     int len)
      • regionMatches

        public boolean regionMatches​(boolean ignoreCase,
                                     int offset,
                                     java.lang.String other,
                                     int otherOffset,
                                     int len)
      • startsWith

        public boolean startsWith​(ByteString prefix)
      • startsWith

        public boolean startsWith​(java.lang.String prefix)
      • startsWith

        public boolean startsWith​(char prefix)
      • startsWithIgnoreCase

        public boolean startsWithIgnoreCase​(ByteString prefix)
      • startsWithIgnoreCase

        public boolean startsWithIgnoreCase​(java.lang.String prefix)
      • startsWithIgnoreCase

        public boolean startsWithIgnoreCase​(char prefix)
      • endsWith

        public boolean endsWith​(ByteString suffix)
      • endsWith

        public boolean endsWith​(java.lang.String suffix)
      • endsWith

        public boolean endsWith​(char suffix)
      • endsWithIgnoreCase

        public boolean endsWithIgnoreCase​(ByteString suffix)
      • endsWithIgnoreCase

        public boolean endsWithIgnoreCase​(java.lang.String suffix)
      • endsWithIgnoreCase

        public boolean endsWithIgnoreCase​(char suffix)
      • concat

        public ByteString concat​(byte[] suffixBytes)
      • concat

        public ByteString concat​(byte[] suffixBytes,
                                 int offs,
                                 int len)
      • concat

        public ByteString concat​(java.lang.String suffix)
      • concat

        public ByteString concat​(java.lang.String suffix,
                                 int offs,
                                 int len)
      • concat

        public static ByteString concat​(java.lang.String prefix,
                                        java.lang.String suffix)
      • charAt

        public char charAt​(int index)
        Specified by:
        charAt in interface java.lang.CharSequence
      • subSequence

        public ByteString subSequence​(int start,
                                      int end)
        Specified by:
        subSequence in interface java.lang.CharSequence