public abstract class Coder
extends java.lang.Object
An abstract class that represents an encoding and decoding function, suitable for operations such as encryption and decryption, or compression and decompression.
A Coder object consists of two operations: An encoding operation, which transforms byte sequences into other byte sequences, and a corresponding decoding operation, which is the inverse of the encoding operation.
A Coder has a block size, which is the smallest length of a sequence which can be encoded or decoded. The length of any data which is input to the coder for encoding or decoding must be a multiple of the block size.
This is an abstract class. The following methods need to be implemented in a subclass:
algName -- Returns the algorithm name.blockSize -- Returns the block size.encodeOp -- Encodes a single block of data.decodeOp -- Decodes a single block of data.| Modifier | Constructor and Description | 
|---|---|
protected | 
Coder()
Standard constructor. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
abstract java.lang.String | 
algName()
Returns the name of the algorithm which this coder implements. 
 | 
byte[] | 
decode(byte[] bytes)
Decodes an entire array of bytes. 
 | 
byte[] | 
decode(byte[] bytes, int offset, int length)
Decode an array of bytes, with the specified offset and number of bytes. 
 | 
abstract byte[] | 
decodeOp(byte[] bytes)
Decodes an array whose length is exactly equal to the block size. 
 | 
byte[] | 
encode(byte[] bytes)
Encode an entire array of bytes. 
 | 
byte[] | 
encode(byte[] bytes, int offset, int length)
Encode array of bytes, with the specified offset and number of bytes. 
 | 
abstract byte[] | 
encodeOp(byte[] bytes)
Encode an array which is exactly blockSize length. 
 | 
abstract int | 
getBlockSize()
Returns the block size of the coder. 
 | 
public abstract int getBlockSize()
public byte[] encode(byte[] bytes,
            int offset,
            int length)
              throws CoderException
bytes - The bytes to be encoded.offset - The index of the start of data.length - The length of the data.CoderException - If coder not initialized, block size incorrect, etc.
public byte[] encode(byte[] bytes)
              throws CoderException
bytes - The bytes to be encoded.CoderException - If coder not initialized, block size incorrect, etc.
public abstract byte[] encodeOp(byte[] bytes)
                         throws CoderException
CoderException - Thrown if blockSize is wrong.
public byte[] decode(byte[] bytes,
            int offset,
            int length)
              throws CoderException
bytes - The bytes to be encoded.offset - The index of the start of data.length - The length of the data.CoderException - If coder not initialized, block size incorrect, etc.
public byte[] decode(byte[] bytes)
              throws CoderException
bytes - The data to be decoded.CoderException - If coder not initialized, data is not a multiple of the block size, etc.
public abstract byte[] decodeOp(byte[] bytes)
                         throws CoderException
bytes - The data to be decoded.CoderException - If blockSize is wrong.public abstract java.lang.String algName()