Package ee.jakarta.tck.ws.rs.lib.util
Class CharacterEncoder
java.lang.Object
ee.jakarta.tck.ws.rs.lib.util.CharacterEncoder
- Direct Known Subclasses:
BASE64Encoder
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.
- encodeAtom which encodes the bytes sent to it as text.
- Version:
- 1.38, 11/17/05
- Author:
- Chuck McManis
- See Also:
-
UCEncoder
UUEncoder
BASE64Encoder
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract int
Return the number of bytes per atom of encodingprotected abstract int
Return the number of bytes that can be encoded per lineencode
(byte[] aBuffer) A 'streamless' version of encode that simply takes a buffer of bytes and returns a string containing the encoded buffer.void
encode
(byte[] aBuffer, OutputStream aStream) Encode the buffer in aBuffer and write the encoded result to the OutputStream aStream.void
encode
(InputStream inStream, OutputStream outStream) Encode bytes from the input stream, and write them as text characters to the output stream.encode
(ByteBuffer aBuffer) A 'streamless' version of encode that simply takes a ByteBuffer and returns a string containing the encoded buffer.void
encode
(ByteBuffer aBuffer, OutputStream aStream) Encode the aBuffer ByteBuffer and write the encoded result to the OutputStream aStream.protected abstract void
encodeAtom
(OutputStream aStream, byte[] someBytes, int anOffset, int aLength) Encode one "atom" of information into characters.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.encodeBuffer
(ByteBuffer aBuffer) A 'streamless' version of encode that simply takes a ByteBuffer and returns a string containing the encoded buffer.void
encodeBuffer
(ByteBuffer aBuffer, OutputStream aStream) Encode the aBuffer ByteBuffer and write the encoded result to the OutputStream aStream.protected void
encodeBufferPrefix
(OutputStream aStream) Encode the prefix for the entire buffer.protected void
encodeBufferSuffix
(OutputStream aStream) Encode the suffix for the entire buffer.protected void
encodeLinePrefix
(OutputStream aStream, int aLength) Encode the prefix that starts every output line.protected void
encodeLineSuffix
(OutputStream aStream) Encode the suffix that ends every output line.protected int
readFully
(InputStream in, byte[] buffer) This method works around the bizarre semantics of BufferedInputStream's read method.
-
Field Details
-
pStream
Stream that understands "printing"
-
-
Constructor Details
-
CharacterEncoder
public CharacterEncoder()
-
-
Method Details
-
bytesPerAtom
protected abstract int bytesPerAtom()Return the number of bytes per atom of encoding -
bytesPerLine
protected abstract int bytesPerLine()Return the number of bytes that can be encoded per line -
encodeBufferPrefix
Encode the prefix for the entire buffer. By default is simply opens the PrintStream for use by the other functions.- Throws:
IOException
-
encodeBufferSuffix
Encode the suffix for the entire buffer.- Throws:
IOException
-
encodeLinePrefix
Encode the prefix that starts every output line.- Throws:
IOException
-
encodeLineSuffix
Encode the suffix that ends every output line. By default this method just prints ainto the output stream. - Throws:
IOException
-
encodeAtom
protected abstract void encodeAtom(OutputStream aStream, byte[] someBytes, int anOffset, int aLength) throws IOException Encode one "atom" of information into characters.- Throws:
IOException
-
readFully
This method works around the bizarre semantics of BufferedInputStream's read method.- Throws:
IOException
-
encode
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, but does not print the line suffix for a final line that is shorter than bytesPerLine().- Throws:
IOException
-
encode
Encode the buffer in aBuffer and write the encoded result to the OutputStream aStream.- Throws:
IOException
-
encode
A 'streamless' version of encode that simply takes a buffer of bytes and returns a string containing the encoded buffer. -
encode
Encode the aBuffer ByteBuffer and write the encoded result to the OutputStream aStream.The ByteBuffer's position will be advanced to ByteBuffer's limit.
- Throws:
IOException
-
encode
A 'streamless' version of encode that simply takes a ByteBuffer and returns a string containing the encoded buffer.The ByteBuffer's position will be advanced to ByteBuffer's limit.
-
encodeBuffer
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. It differs from encode in that it will add the line at the end of a final line that is shorter than bytesPerLine().- Throws:
IOException
-
encodeBuffer
Encode the buffer in aBuffer and write the encoded result to the OutputStream aStream.- Throws:
IOException
-
encodeBuffer
A 'streamless' version of encode that simply takes a buffer of bytes and returns a string containing the encoded buffer. -
encodeBuffer
Encode the aBuffer ByteBuffer and write the encoded result to the OutputStream aStream.The ByteBuffer's position will be advanced to ByteBuffer's limit.
- Throws:
IOException
-
encodeBuffer
A 'streamless' version of encode that simply takes a ByteBuffer and returns a string containing the encoded buffer.The ByteBuffer's position will be advanced to ByteBuffer's limit.
-