Class Base64Variant

java.lang.Object
org.codehaus.jackson.Base64Variant

public final class Base64Variant extends Object
Abstract base class used to define specific details of which variant of Base64 encoding/decoding is to be used. Although there is somewhat standard basic version (so-called "MIME Base64"), other variants exists, see Base64 Wikipedia entry for details.
Since:
0.9.3
Author:
Tatu Saloranta
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Marker used to denote ascii characters that do not correspond to a 6-bit value (in this variant), and is not used as a padding character.
    static final int
    Marker used to denote ascii character (in decoding table) that is the padding character using this variant (if any).
  • Constructor Summary

    Constructors
    Constructor
    Description
    Base64Variant(String name, String base64Alphabet, boolean usesPadding, char paddingChar, int maxLineLength)
     
    Base64Variant(Base64Variant base, String name, boolean usesPadding, char paddingChar, int maxLineLength)
    "Copy constructor" that can be used when the base alphabet is identical to one used by another variant, but other details (padding, maximum line length) differ
    Base64Variant(Base64Variant base, String name, int maxLineLength)
    "Copy constructor" that can be used when the base alphabet is identical to one used by another variant except for the maximum line length (and obviously, name).
  • Method Summary

    Modifier and Type
    Method
    Description
    int
     
    int
     
    int
     
    encode(byte[] input)
    Convenience method for converting given byte array as base64 encoded String using this variant's settings.
    encode(byte[] input, boolean addQuotes)
    Convenience method for converting given byte array as base64 encoded String using this variant's settings, optionally enclosed in double-quotes.
    byte
     
    char
     
    int
    encodeBase64Chunk(int b24, byte[] buffer, int ptr)
    Method that encodes given right-aligned (LSB) 24-bit value into 4 base64 bytes (ascii), stored in given result buffer.
    int
    encodeBase64Chunk(int b24, char[] buffer, int ptr)
    Method that encodes given right-aligned (LSB) 24-bit value into 4 base64 characters, stored in given result buffer.
    void
     
    int
    encodeBase64Partial(int bits, int outputBytes, byte[] buffer, int outPtr)
    Method that outputs partial chunk (which only encodes one or two bytes of data).
    int
    encodeBase64Partial(int bits, int outputBytes, char[] buffer, int outPtr)
    Method that outputs partial chunk (which only encodes one or two bytes of data).
    void
    encodeBase64Partial(StringBuilder sb, int bits, int outputBytes)
     
    int
     
     
    byte
     
    char
     
     
    boolean
     
    boolean
     
    boolean
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • BASE64_VALUE_INVALID

      public static final int BASE64_VALUE_INVALID
      Marker used to denote ascii characters that do not correspond to a 6-bit value (in this variant), and is not used as a padding character.
      See Also:
    • BASE64_VALUE_PADDING

      public static final int BASE64_VALUE_PADDING
      Marker used to denote ascii character (in decoding table) that is the padding character using this variant (if any).
      See Also:
  • Constructor Details

    • Base64Variant

      public Base64Variant(String name, String base64Alphabet, boolean usesPadding, char paddingChar, int maxLineLength)
    • Base64Variant

      public Base64Variant(Base64Variant base, String name, int maxLineLength)
      "Copy constructor" that can be used when the base alphabet is identical to one used by another variant except for the maximum line length (and obviously, name).
    • Base64Variant

      public Base64Variant(Base64Variant base, String name, boolean usesPadding, char paddingChar, int maxLineLength)
      "Copy constructor" that can be used when the base alphabet is identical to one used by another variant, but other details (padding, maximum line length) differ
  • Method Details

    • getName

      public String getName()
    • usesPadding

      public boolean usesPadding()
    • usesPaddingChar

      public boolean usesPaddingChar(char c)
    • usesPaddingChar

      public boolean usesPaddingChar(int ch)
    • getPaddingChar

      public char getPaddingChar()
    • getPaddingByte

      public byte getPaddingByte()
    • getMaxLineLength

      public int getMaxLineLength()
    • decodeBase64Char

      public int decodeBase64Char(char c)
      Returns:
      6-bit decoded value, if valid character;
    • decodeBase64Char

      public int decodeBase64Char(int ch)
    • decodeBase64Byte

      public int decodeBase64Byte(byte b)
    • encodeBase64BitsAsChar

      public char encodeBase64BitsAsChar(int value)
    • encodeBase64Chunk

      public int encodeBase64Chunk(int b24, char[] buffer, int ptr)
      Method that encodes given right-aligned (LSB) 24-bit value into 4 base64 characters, stored in given result buffer.
    • encodeBase64Chunk

      public void encodeBase64Chunk(StringBuilder sb, int b24)
    • encodeBase64Partial

      public int encodeBase64Partial(int bits, int outputBytes, char[] buffer, int outPtr)
      Method that outputs partial chunk (which only encodes one or two bytes of data). Data given is still aligned same as if it as full data; that is, missing data is at the "right end" (LSB) of int.
      Parameters:
      outputBytes - Number of encoded bytes included (either 1 or 2)
    • encodeBase64Partial

      public void encodeBase64Partial(StringBuilder sb, int bits, int outputBytes)
    • encodeBase64BitsAsByte

      public byte encodeBase64BitsAsByte(int value)
    • encodeBase64Chunk

      public int encodeBase64Chunk(int b24, byte[] buffer, int ptr)
      Method that encodes given right-aligned (LSB) 24-bit value into 4 base64 bytes (ascii), stored in given result buffer.
    • encodeBase64Partial

      public int encodeBase64Partial(int bits, int outputBytes, byte[] buffer, int outPtr)
      Method that outputs partial chunk (which only encodes one or two bytes of data). Data given is still aligned same as if it as full data; that is, missing data is at the "right end" (LSB) of int.
      Parameters:
      outputBytes - Number of encoded bytes included (either 1 or 2)
    • encode

      public String encode(byte[] input)
      Convenience method for converting given byte array as base64 encoded String using this variant's settings. Resulting value is "raw", that is, not enclosed in double-quotes.
      Parameters:
      input - Byte array to encode
      Since:
      1.6
    • encode

      public String encode(byte[] input, boolean addQuotes)
      Convenience method for converting given byte array as base64 encoded String using this variant's settings, optionally enclosed in double-quotes.
      Parameters:
      input - Byte array to encode
      addQuotes - Whether to surround resulting value in double quotes or not
      Since:
      1.6
    • toString

      public String toString()
      Overrides:
      toString in class Object