org.codehaus.jackson
Class Base64Variant

java.lang.Object
  extended by 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
static 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.
static int BASE64_VALUE_PADDING
          Marker used to denote ascii character (in decoding table) that is the padding character using this variant (if any).
 
Constructor Summary
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).
Base64Variant(String name, String base64Alphabet, boolean usesPadding, char paddingChar, int maxLineLength)
           
 
Method Summary
 int decodeBase64Byte(byte b)
           
 int decodeBase64Char(char c)
           
 int decodeBase64Char(int ch)
           
 byte encodeBase64BitsAsByte(int value)
           
 char encodeBase64BitsAsChar(int value)
           
 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 encodeBase64Chunk(StringBuilder sb, int b24)
           
 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 getMaxLineLength()
           
 String getName()
           
 byte getPaddingByte()
           
 char getPaddingChar()
           
 String toString()
           
 boolean usesPadding()
           
 boolean usesPaddingChar(char c)
           
 boolean usesPaddingChar(int ch)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

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:
Constant Field Values

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:
Constant Field Values
Constructor Detail

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 Detail

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)

toString

public String toString()
Overrides:
toString in class Object