类 BaseNCodec

java.lang.Object
com.icetech.sdk.util.BaseNCodec
直接已知子类:
Base64Util

public abstract class BaseNCodec extends Object
Abstract superclass for Base-N encoders and decoders.

This class is thread-safe.

版本:
$Id: BaseNCodec.java 1634404 2014-10-26 23:06:10Z ggregory $
  • 字段概要

    字段
    修饰符和类型
    字段
    说明
    protected final int
    Chunksize for encoding.
    protected static final int
    Mask used to extract 8 bits, used in decoding bytes
    static final int
    MIME chunk size per RFC 2045 section 6.8.
    protected final byte
     
    protected final byte
    已过时。
    Use pad.
    protected static final byte
    Byte used to pad output.
    static final int
    PEM chunk size per RFC 1421 section 4.3.2.4.
    static Charset
     
  • 构造器概要

    构造器
    限定符
    构造器
    说明
    protected
    BaseNCodec(int unencodedBlockSize, int encodedBlockSize, int lineLength, int chunkSeparatorLength)
    Note lineLength is rounded down to the nearest multiple of encodedBlockSize If chunkSeparatorLength is zero, then chunking is disabled.
    protected
    BaseNCodec(int unencodedBlockSize, int encodedBlockSize, int lineLength, int chunkSeparatorLength, byte pad)
    Note lineLength is rounded down to the nearest multiple of encodedBlockSize If chunkSeparatorLength is zero, then chunking is disabled.
  • 方法概要

    修饰符和类型
    方法
    说明
    protected boolean
    containsAlphabetOrPad(byte[] arrayOctet)
    Tests a given byte array to see if it contains any characters within the alphabet or PAD.
    byte[]
    decode(byte[] pArray)
    Decodes a byte[] containing characters in the Base-N alphabet.
    Decodes an Object using the Base-N algorithm.
    byte[]
    decode(String pArray)
    Decodes a String containing characters in the Base-N alphabet.
    byte[]
    encode(byte[] pArray)
    Encodes a byte[] containing binary data, into a byte[] containing characters in the alphabet.
    Encodes an Object using the Base-N algorithm.
    encodeAsString(byte[] pArray)
    Encodes a byte[] containing binary data, into a String containing characters in the appropriate alphabet.
    encodeToString(byte[] pArray)
    Encodes a byte[] containing binary data, into a String containing characters in the Base-N alphabet.
    protected byte[]
    ensureBufferSize(int size, com.icetech.sdk.util.BaseNCodec.Context context)
    Ensure that the buffer has room for size bytes
    static byte[]
     
    protected int
    Get the default buffer size.
    long
    getEncodedLength(byte[] pArray)
    Calculates the amount of space needed to encode the supplied array.
    protected abstract boolean
    isInAlphabet(byte value)
    Returns whether or not the octet is in the current alphabet.
    boolean
    isInAlphabet(byte[] arrayOctet, boolean allowWSPad)
    Tests a given byte array to see if it contains only valid characters within the alphabet.
    boolean
    Tests a given String to see if it contains only valid characters within the alphabet.
    protected static boolean
    isWhiteSpace(byte byteToCheck)
    Checks if a byte value is whitespace or not.
    static String
    newStringUtf8(byte[] bytes)
     

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 字段详细资料

    • MIME_CHUNK_SIZE

      public static final int MIME_CHUNK_SIZE
      MIME chunk size per RFC 2045 section 6.8.

      The 76 character limit does not count the trailing CRLF, but counts all other characters, including any equal signs.

      另请参阅:
    • PEM_CHUNK_SIZE

      public static final int PEM_CHUNK_SIZE
      PEM chunk size per RFC 1421 section 4.3.2.4.

      The 64 character limit does not count the trailing CRLF, but counts all other characters, including any equal signs.

      另请参阅:
    • MASK_8BITS

      protected static final int MASK_8BITS
      Mask used to extract 8 bits, used in decoding bytes
      另请参阅:
    • PAD_DEFAULT

      protected static final byte PAD_DEFAULT
      Byte used to pad output.
      另请参阅:
    • PAD

      @Deprecated protected final byte PAD
      已过时。
      Use pad. Will be removed in 2.0.
      另请参阅:
    • pad

      protected final byte pad
    • lineLength

      protected final int lineLength
      Chunksize for encoding. Not used when decoding. A value of zero or less implies no chunking of the encoded data. Rounded down to nearest multiple of encodedBlockSize.
    • UTF8

      public static Charset UTF8
  • 构造器详细资料

    • BaseNCodec

      protected BaseNCodec(int unencodedBlockSize, int encodedBlockSize, int lineLength, int chunkSeparatorLength)
      Note lineLength is rounded down to the nearest multiple of encodedBlockSize If chunkSeparatorLength is zero, then chunking is disabled.
      参数:
      unencodedBlockSize - the size of an unencoded block (e.g. Base64 = 3)
      encodedBlockSize - the size of an encoded block (e.g. Base64 = 4)
      lineLength - if > 0, use chunking with a length lineLength
      chunkSeparatorLength - the chunk separator length, if relevant
    • BaseNCodec

      protected BaseNCodec(int unencodedBlockSize, int encodedBlockSize, int lineLength, int chunkSeparatorLength, byte pad)
      Note lineLength is rounded down to the nearest multiple of encodedBlockSize If chunkSeparatorLength is zero, then chunking is disabled.
      参数:
      unencodedBlockSize - the size of an unencoded block (e.g. Base64 = 3)
      encodedBlockSize - the size of an encoded block (e.g. Base64 = 4)
      lineLength - if > 0, use chunking with a length lineLength
      chunkSeparatorLength - the chunk separator length, if relevant
      pad - byte used as padding byte.
  • 方法详细资料

    • getDefaultBufferSize

      protected int getDefaultBufferSize()
      Get the default buffer size. Can be overridden.
      返回:
      DEFAULT_BUFFER_SIZE
    • ensureBufferSize

      protected byte[] ensureBufferSize(int size, com.icetech.sdk.util.BaseNCodec.Context context)
      Ensure that the buffer has room for size bytes
      参数:
      size - minimum spare space required
      context - the context to be used
      返回:
      the buffer
    • isWhiteSpace

      protected static boolean isWhiteSpace(byte byteToCheck)
      Checks if a byte value is whitespace or not. Whitespace is taken to mean: space, tab, CR, LF
      参数:
      byteToCheck - the byte to check
      返回:
      true if byte is whitespace, false otherwise
    • encode

      public Object encode(Object obj) throws Exception
      Encodes an Object using the Base-N algorithm. This method is provided in order to satisfy the requirements of the Encoder interface, and will throw an EncoderException if the supplied object is not of type byte[].
      参数:
      obj - Object to encode
      返回:
      An object (of type byte[]) containing the Base-N encoded data which corresponds to the byte[] supplied.
      抛出:
      Exception - if the parameter supplied is not of type byte[]
    • encodeToString

      public String encodeToString(byte[] pArray)
      Encodes a byte[] containing binary data, into a String containing characters in the Base-N alphabet. Uses UTF8 encoding.
      参数:
      pArray - a byte array containing binary data
      返回:
      A String containing only Base-N character data
    • encodeAsString

      public String encodeAsString(byte[] pArray)
      Encodes a byte[] containing binary data, into a String containing characters in the appropriate alphabet. Uses UTF8 encoding.
      参数:
      pArray - a byte array containing binary data
      返回:
      String containing only character data in the appropriate alphabet.
    • decode

      public Object decode(Object obj) throws Exception
      Decodes an Object using the Base-N algorithm. This method is provided in order to satisfy the requirements of the Decoder interface, and will throw a DecoderException if the supplied object is not of type byte[] or String.
      参数:
      obj - Object to decode
      返回:
      An object (of type byte[]) containing the binary data which corresponds to the byte[] or String supplied.
      抛出:
      Exception - if the parameter supplied is not of type byte[]
    • decode

      public byte[] decode(String pArray)
      Decodes a String containing characters in the Base-N alphabet.
      参数:
      pArray - A String containing Base-N character data
      返回:
      a byte array containing binary data
    • decode

      public byte[] decode(byte[] pArray)
      Decodes a byte[] containing characters in the Base-N alphabet.
      参数:
      pArray - A byte array containing Base-N character data
      返回:
      a byte array containing binary data
    • encode

      public byte[] encode(byte[] pArray)
      Encodes a byte[] containing binary data, into a byte[] containing characters in the alphabet.
      参数:
      pArray - a byte array containing binary data
      返回:
      A byte array containing only the basen alphabetic character data
    • isInAlphabet

      protected abstract boolean isInAlphabet(byte value)
      Returns whether or not the octet is in the current alphabet. Does not allow whitespace or pad.
      参数:
      value - The value to test
      返回:
      true if the value is defined in the current alphabet, false otherwise.
    • isInAlphabet

      public boolean isInAlphabet(byte[] arrayOctet, boolean allowWSPad)
      Tests a given byte array to see if it contains only valid characters within the alphabet. The method optionally treats whitespace and pad as valid.
      参数:
      arrayOctet - byte array to test
      allowWSPad - if true, then whitespace and PAD are also allowed
      返回:
      true if all bytes are valid characters in the alphabet or if the byte array is empty; false, otherwise
    • isInAlphabet

      public boolean isInAlphabet(String basen)
      Tests a given String to see if it contains only valid characters within the alphabet. The method treats whitespace and PAD as valid.
      参数:
      basen - String to test
      返回:
      true if all characters in the String are valid characters in the alphabet or if the String is empty; false, otherwise
      另请参阅:
    • containsAlphabetOrPad

      protected boolean containsAlphabetOrPad(byte[] arrayOctet)
      Tests a given byte array to see if it contains any characters within the alphabet or PAD. Intended for use in checking line-ending arrays
      参数:
      arrayOctet - byte array to test
      返回:
      true if any byte is a valid character in the alphabet or PAD; false otherwise
    • getEncodedLength

      public long getEncodedLength(byte[] pArray)
      Calculates the amount of space needed to encode the supplied array.
      参数:
      pArray - byte[] array which will later be encoded
      返回:
      amount of space needed to encoded the supplied array. Returns a long since a max-len array will require > Integer.MAX_VALUE
    • newStringUtf8

      public static String newStringUtf8(byte[] bytes)
    • getBytesUtf8

      public static byte[] getBytesUtf8(String string)