com.sun.grizzly.util.buf
Class Base64Utils

java.lang.Object
  extended by com.sun.grizzly.util.buf.Base64Utils

public class Base64Utils
extends Object


Constructor Summary
Base64Utils()
           
 
Method Summary
static byte[] decode(byte[] sArr)
          Decodes a BASE64 encoded byte array.
static byte[] decode(char[] sArr)
          Decodes a BASE64 encoded char array.
static byte[] decode(String str)
          Decodes a BASE64 encoded String.
static byte[] decodeFast(byte[] sArr)
          Decodes a BASE64 encoded byte array that is known to be resonably well formatted.
static byte[] decodeFast(char[] sArr)
          Decodes a BASE64 encoded char array that is known to be resonably well formatted.
static byte[] decodeFast(String s)
          Decodes a BASE64 encoded string that is known to be resonably well formatted.
static byte[] encodeToByte(byte[] sArr, boolean lineSep)
          Encodes a raw byte array into a BASE64 byte[] representation i accordance with RFC 2045.
static char[] encodeToChar(byte[] sArr, boolean lineSep)
          Encodes a raw byte array into a BASE64 char[] representation i accordance with RFC 2045.
static String encodeToString(byte[] sArr, boolean lineSep)
          Encodes a raw byte array into a BASE64 String representation i accordance with RFC 2045.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Base64Utils

public Base64Utils()
Method Detail

encodeToChar

public static final char[] encodeToChar(byte[] sArr,
                                        boolean lineSep)
Encodes a raw byte array into a BASE64 char[] representation i accordance with RFC 2045.

Parameters:
sArr - The bytes to convert. If null or length 0 an empty array will be returned.
lineSep - Optional "\r\n" after 76 characters, unless end of file.
No line separator will be in breach of RFC 2045 which specifies max 76 per line but will be a little faster.
Returns:
A BASE64 encoded array. Never null.

decode

public static final byte[] decode(char[] sArr)
Decodes a BASE64 encoded char array. All illegal characters will be ignored and can handle both arrays with and without line separators.

Parameters:
sArr - The source array. null or length 0 will return an empty array.
Returns:
The decoded array of bytes. May be of length 0. Will be null if the legal characters (including '=') isn't divideable by 4. (I.e. definitely corrupted).

decodeFast

public static final byte[] decodeFast(char[] sArr)
Decodes a BASE64 encoded char array that is known to be resonably well formatted. The method is about twice as fast as decode(char[]). The preconditions are:
+ The array must have a line length of 76 chars OR no line separators at all (one line).
+ Line separator must be "\r\n", as specified in RFC 2045 + The array must not contain illegal characters within the encoded string
+ The array CAN have illegal characters at the beginning and end, those will be dealt with appropriately.

Parameters:
sArr - The source array. Length 0 will return an empty array. null will throw an exception.
Returns:
The decoded array of bytes. May be of length 0.

encodeToByte

public static final byte[] encodeToByte(byte[] sArr,
                                        boolean lineSep)
Encodes a raw byte array into a BASE64 byte[] representation i accordance with RFC 2045.

Parameters:
sArr - The bytes to convert. If null or length 0 an empty array will be returned.
lineSep - Optional "\r\n" after 76 characters, unless end of file.
No line separator will be in breach of RFC 2045 which specifies max 76 per line but will be a little faster.
Returns:
A BASE64 encoded array. Never null.

decode

public static final byte[] decode(byte[] sArr)
Decodes a BASE64 encoded byte array. All illegal characters will be ignored and can handle both arrays with and without line separators.

Parameters:
sArr - The source array. Length 0 will return an empty array. null will throw an exception.
Returns:
The decoded array of bytes. May be of length 0. Will be null if the legal characters (including '=') isn't divideable by 4. (I.e. definitely corrupted).

decodeFast

public static final byte[] decodeFast(byte[] sArr)
Decodes a BASE64 encoded byte array that is known to be resonably well formatted. The method is about twice as fast as decode(byte[]). The preconditions are:
+ The array must have a line length of 76 chars OR no line separators at all (one line).
+ Line separator must be "\r\n", as specified in RFC 2045 + The array must not contain illegal characters within the encoded string
+ The array CAN have illegal characters at the beginning and end, those will be dealt with appropriately.

Parameters:
sArr - The source array. Length 0 will return an empty array. null will throw an exception.
Returns:
The decoded array of bytes. May be of length 0.

encodeToString

public static final String encodeToString(byte[] sArr,
                                          boolean lineSep)
Encodes a raw byte array into a BASE64 String representation i accordance with RFC 2045.

Parameters:
sArr - The bytes to convert. If null or length 0 an empty array will be returned.
lineSep - Optional "\r\n" after 76 characters, unless end of file.
No line separator will be in breach of RFC 2045 which specifies max 76 per line but will be a little faster.
Returns:
A BASE64 encoded array. Never null.

decode

public static final byte[] decode(String str)
Decodes a BASE64 encoded String. All illegal characters will be ignored and can handle both strings with and without line separators.
Note! It can be up to about 2x the speed to call decode(str.toCharArray()) instead. That will create a temporary array though. This version will use str.charAt(i) to iterate the string.

Parameters:
str - The source string. null or length 0 will return an empty array.
Returns:
The decoded array of bytes. May be of length 0. Will be null if the legal characters (including '=') isn't divideable by 4. (I.e. definitely corrupted).

decodeFast

public static final byte[] decodeFast(String s)
Decodes a BASE64 encoded string that is known to be resonably well formatted. The method is about twice as fast as decode(String). The preconditions are:
+ The array must have a line length of 76 chars OR no line separators at all (one line).
+ Line separator must be "\r\n", as specified in RFC 2045 + The array must not contain illegal characters within the encoded string
+ The array CAN have illegal characters at the beginning and end, those will be dealt with appropriately.

Parameters:
s - The source string. Length 0 will return an empty array. null will throw an exception.
Returns:
The decoded array of bytes. May be of length 0.


Copyright © 2009 SUN Microsystems. All Rights Reserved.