Module swim.codec
Package swim.codec

Class Base16


  • public final class Base16
    extends Object
    Base-16 (hexadecimal) encoding Parser/Writer factory.
    • Method Summary

      Modifier and Type Method Description
      String alphabet()
      Returns a 16 character string, where the character at index i is the encoding of the base-16 digit i.
      Writer<byte[],​?> byteArrayWriter()
      Returns a Writer that, when fed an input byte[] array, returns a continuation that writes the base-16 (hexadecimal) encoding of the input byte array.
      Writer<?,​byte[]> byteArrayWriter​(byte[] input)
      Returns a Writer continuation that writes the base-16 (hexadecimal) encoding of the input byte array.
      Writer<ByteBuffer,​?> byteBufferWriter()
      Returns a Writer that, when fed an input ByteBuffer, returns a continuation that writes the base-16 (hexadecimal) encoding of the input byte buffer.
      Writer<?,​ByteBuffer> byteBufferWriter​(ByteBuffer input)
      Returns a Writer continuation that writes the base-16 (hexadecimal) encoding of the input byte buffer.
      static int decodeDigit​(int c)
      Returns the 4-bit quantity represented by the base-16 digit c.
      char encodeDigit​(int b)
      Returns the Unicode code point of the base-16 digit that encodes the given 4-bit quantity.
      static boolean isDigit​(int c)
      Returns true if the Unicode code point c is a valid base-16 digit.
      static Base16 lowercase()
      Returns the Base16 encoding with lowercase alphanumeric digits.
      static <O> Parser<O> parse​(Input input, Output<O> output)
      Parses the base-16 (hexadecimal) encoded input, and writes the decoded bytes to output, returning a Parser continuation that knows how to parse any additional input.
      static Parser<byte[]> parseByteArray​(Input input)
      Parses the base-16 (hexadecimal) encoded input, and writes the decoded bytes to a growable array, returning a Parser continuation that knows how to parse any additional input.
      static Parser<ByteBuffer> parseByteBuffer​(Input input)
      Parses the base-16 (hexadecimal) encoded input, and writes the decoded bytes to a growable buffer, returning a Parser continuation that knows how to parse any additional input.
      static <O> Parser<O> parser​(Output<O> output)
      Returns a Parser that decodes base-16 (hexadecimal) encoded input, and writes the decoded bytes to output.
      static Base16 uppercase()
      Returns the Base16 encoding with uppercase alphanumeric digits.
      Writer<?,​?> writeByteArray​(byte[] input, Output<?> output)
      Writes the base-16 (hexadecimal) encoding of the input byte array to the output, returning a Writer continuation that knows how to write any remaining output that couldn't be immediately generated.
      Writer<?,​?> writeByteBuffer​(ByteBuffer input, Output<?> output)
      Writes the base-16 (hexadecimal) encoding of the input byte buffer to the output, returning a Writer continuation that knows how to write any remaining output that couldn't be immediately generated.
      Writer<?,​?> writeInt​(int input, Output<?> output)  
      Writer<?,​?> writeInt​(int input, Output<?> output, int width)  
      Writer<?,​?> writeIntLiteral​(int input, Output<?> output)  
      Writer<?,​?> writeIntLiteral​(int input, Output<?> output, int width)  
      Writer<?,​?> writeLong​(long input, Output<?> output)  
      Writer<?,​?> writeLong​(long input, Output<?> output, int width)  
      Writer<?,​?> writeLongLiteral​(long input, Output<?> output)  
      Writer<?,​?> writeLongLiteral​(long input, Output<?> output, int width)  
      static void writeQuantum​(int c1, int c2, Output<?> output)
      Decodes the base-16 digits c1 and c2, and writes the 8-bit quantity they represent to the given output.
    • Method Detail

      • lowercase

        public static Base16 lowercase()
        Returns the Base16 encoding with lowercase alphanumeric digits.
      • uppercase

        public static Base16 uppercase()
        Returns the Base16 encoding with uppercase alphanumeric digits.
      • isDigit

        public static boolean isDigit​(int c)
        Returns true if the Unicode code point c is a valid base-16 digit.
      • decodeDigit

        public static int decodeDigit​(int c)
        Returns the 4-bit quantity represented by the base-16 digit c.
        Throws:
        IllegalArgumentException - if c is not a valid base-16 digit.
      • writeQuantum

        public static void writeQuantum​(int c1,
                                        int c2,
                                        Output<?> output)
        Decodes the base-16 digits c1 and c2, and writes the 8-bit quantity they represent to the given output.
      • parser

        public static <O> Parser<O> parser​(Output<O> output)
        Returns a Parser that decodes base-16 (hexadecimal) encoded input, and writes the decoded bytes to output.
      • parse

        public static <O> Parser<O> parse​(Input input,
                                          Output<O> output)
        Parses the base-16 (hexadecimal) encoded input, and writes the decoded bytes to output, returning a Parser continuation that knows how to parse any additional input.
      • parseByteArray

        public static Parser<byte[]> parseByteArray​(Input input)
        Parses the base-16 (hexadecimal) encoded input, and writes the decoded bytes to a growable array, returning a Parser continuation that knows how to parse any additional input. The returned Parser binds a byte[] array containing all parsed base-16 data.
      • parseByteBuffer

        public static Parser<ByteBuffer> parseByteBuffer​(Input input)
        Parses the base-16 (hexadecimal) encoded input, and writes the decoded bytes to a growable buffer, returning a Parser continuation that knows how to parse any additional input. The returned Parser binds a ByteBuffer containing all parsed base-16 data.
      • alphabet

        public String alphabet()
        Returns a 16 character string, where the character at index i is the encoding of the base-16 digit i.
      • encodeDigit

        public char encodeDigit​(int b)
        Returns the Unicode code point of the base-16 digit that encodes the given 4-bit quantity.
      • byteArrayWriter

        public Writer<byte[],​?> byteArrayWriter()
        Returns a Writer that, when fed an input byte[] array, returns a continuation that writes the base-16 (hexadecimal) encoding of the input byte array.
      • byteArrayWriter

        public Writer<?,​byte[]> byteArrayWriter​(byte[] input)
        Returns a Writer continuation that writes the base-16 (hexadecimal) encoding of the input byte array.
      • byteBufferWriter

        public Writer<ByteBuffer,​?> byteBufferWriter()
        Returns a Writer that, when fed an input ByteBuffer, returns a continuation that writes the base-16 (hexadecimal) encoding of the input byte buffer.
      • byteBufferWriter

        public Writer<?,​ByteBuffer> byteBufferWriter​(ByteBuffer input)
        Returns a Writer continuation that writes the base-16 (hexadecimal) encoding of the input byte buffer.
      • writeByteArray

        public Writer<?,​?> writeByteArray​(byte[] input,
                                                Output<?> output)
        Writes the base-16 (hexadecimal) encoding of the input byte array to the output, returning a Writer continuation that knows how to write any remaining output that couldn't be immediately generated.
      • writeByteBuffer

        public Writer<?,​?> writeByteBuffer​(ByteBuffer input,
                                                 Output<?> output)
        Writes the base-16 (hexadecimal) encoding of the input byte buffer to the output, returning a Writer continuation that knows how to write any remaining output that couldn't be immediately generated.
      • writeInt

        public Writer<?,​?> writeInt​(int input,
                                          Output<?> output,
                                          int width)
      • writeInt

        public Writer<?,​?> writeInt​(int input,
                                          Output<?> output)
      • writeLong

        public Writer<?,​?> writeLong​(long input,
                                           Output<?> output,
                                           int width)
      • writeLong

        public Writer<?,​?> writeLong​(long input,
                                           Output<?> output)
      • writeIntLiteral

        public Writer<?,​?> writeIntLiteral​(int input,
                                                 Output<?> output,
                                                 int width)
      • writeIntLiteral

        public Writer<?,​?> writeIntLiteral​(int input,
                                                 Output<?> output)
      • writeLongLiteral

        public Writer<?,​?> writeLongLiteral​(long input,
                                                  Output<?> output,
                                                  int width)
      • writeLongLiteral

        public Writer<?,​?> writeLongLiteral​(long input,
                                                  Output<?> output)