Open SiteSearch 4.1.1
Final

ORG.oclc.ecat.util
Class CharacterEncoder

java.lang.Object
  |
  +--ORG.oclc.ecat.util.CharacterEncoder
Direct Known Subclasses:
BASE64Encoder, HexDumpEncoder, UCEncoder, UUEncoder

public abstract class CharacterEncoder
extends Object

This class defines the encoding half of character encoders. A character encoder is an algorithim for transforming 8 bit binary data into text (generally 7 bit ASCII or 8 bit ISO-Latin-1 text) for transmition over text channels such as e-mail and network news. The character encoders have been structured around a central theme that, in general, the encoded text has the form:

	[Buffer Prefix]
	[Line Prefix][encoded data atoms][Line Suffix]
	[Buffer Suffix]
 
In the CharacterEncoder and CharacterDecoder classes, one complete chunk of data is referred to as a buffer. Encoded buffers are all text, and decoded buffers (sometimes just referred to as buffers) are binary octets. To create a custom encoder, you must, at a minimum, overide three abstract methods in this class.
bytesPerAtom which tells the encoder how many bytes to send to encodeAtom
encodeAtom which encodes the bytes sent to it as text.
bytesPerLine which tells the encoder the maximum number of bytes per line.
Several useful encoders have already been written and are referenced in the See Also list below.

See Also:
, UCEncoder, UUEncoder, BASE64Encoder

Field Summary
protected  PrintStream pStream
          Stream that understands "printing"
 
Constructor Summary
CharacterEncoder()
           
 
Method Summary
 String encodeBuffer(byte[] aBuffer)
          A 'streamless' version of encode that simply takes a buffer of bytes and returns a string containing the encoded buffer.
 void encodeBuffer(byte[] aBuffer, OutputStream aStream)
          Encode the buffer in aBuffer and write the encoded result to the OutputStream aStream.
 void encodeBuffer(InputStream inStream, OutputStream outStream)
          Encode bytes from the input stream, and write them as text characters to the output stream.
protected  int readFully(InputStream in, byte[] buffer)
          This method works around the bizarre semantics of BufferedInputStream's read method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pStream

protected PrintStream pStream
Stream that understands "printing"
Constructor Detail

CharacterEncoder

public CharacterEncoder()
Method Detail

readFully

protected int readFully(InputStream in,
                        byte[] buffer)
                 throws IOException
This method works around the bizarre semantics of BufferedInputStream's read method.

encodeBuffer

public void encodeBuffer(InputStream inStream,
                         OutputStream outStream)
                  throws IOException
Encode bytes from the input stream, and write them as text characters to the output stream. This method will run until it exhausts the input stream.

encodeBuffer

public void encodeBuffer(byte[] aBuffer,
                         OutputStream aStream)
                  throws IOException
Encode the buffer in aBuffer and write the encoded result to the OutputStream aStream.

encodeBuffer

public String encodeBuffer(byte[] aBuffer)
A 'streamless' version of encode that simply takes a buffer of bytes and returns a string containing the encoded buffer.

Open SiteSearch 4.1.1
Final