wt.util
Class Encoder

java.lang.Object
  extended bywt.util.Encoder

public class Encoder
extends Object

The Encoder class provides methods to encode and decode serializable objects to and from character strings. It provides static convenience methods to encode and decode a single serializable object to and from a character string. Instances of Encoder can be used to efficiently reuse a single java.io.ObjectInputStream or java.io.ObjectOutputStream to read and write many character strings or byte streams. The encoding scheme is considered an internal property of the encoder, but is guaranteed to be a subset of ASCII characters such as Base64-encoding.

A duplicate of this class exists as wt.pds.PDSEncoder where the object input and object output streams implement wt.pds.PDSObjectInput and wt.pds.PDSObjectOutput interfaces. These are tagging interfaces used by some Windchill classes to identify when they are being serialized for long term (persistent) storage. If serializing objects for persistent storage, that class should be used.

NOTE: This class duplicates code that exists in wt.pds.PDSEncoder. Any changes to this class should be reflected there as well.

Supported API: true
Extendable: false


Nested Class Summary
(package private) static class Encoder.DecodeObjectInputStream
           
(package private) static class Encoder.EncodeObjectOutputStream
           
(package private) static class Encoder.InputRedirector
           
(package private) static class Encoder.OutputRedirector
           
 
Field Summary
private  Encoder.DecodeObjectInputStream decodeStream
           
private  Encoder.EncodeObjectOutputStream encodeStream
           
 
Constructor Summary
Encoder()
           
 
Method Summary
static Serializable decode(String str)
          Produces a serializable object from the encoded string argument.
static String encode(Serializable obj)
          Produces an encoded string from an object argument.
 ObjectInputStream setInput(InputStream in)
          Set a input stream to read next object stream.
 ObjectInputStream setInput(String str)
          Set a string to read next encoded object stream.
 ObjectOutputStream setOutput(OutputStream out)
          Set a output stream to receive the next object stream.
 ObjectOutputStream setOutput(StringBuffer buf)
          Set a string buffer to receive the next encoded object stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

encodeStream

private Encoder.EncodeObjectOutputStream encodeStream

decodeStream

private Encoder.DecodeObjectInputStream decodeStream
Constructor Detail

Encoder

public Encoder()
Method Detail

encode

public static String encode(Serializable obj)
                     throws IOException
Produces an encoded string from an object argument. The object must be Serializable. A transient Encoder object is constructed to perform the serialization.

Supported API: true

Parameters:
obj - Serializable object to be encoded
Returns:
String serialization of the object
Throws:
IOException

decode

public static Serializable decode(String str)
                           throws IOException,
                                  ClassNotFoundException
Produces a serializable object from the encoded string argument.

Supported API: true

Parameters:
str - encoded string returned by encode operation
Returns:
Serializable object
Throws:
IOException
ClassNotFoundException

setOutput

public ObjectOutputStream setOutput(StringBuffer buf)
                             throws IOException
Set a string buffer to receive the next encoded object stream.

Supported API: true

Parameters:
buf - the StringBuffer
Returns:
the ObjectOutputStream for writing to this buffer
Throws:
IOException

setOutput

public ObjectOutputStream setOutput(OutputStream out)
                             throws IOException
Set a output stream to receive the next object stream.

Supported API: true

Parameters:
out - the OutputStream
Returns:
the ObjectOutputStream for writing to this byte stream
Throws:
IOException

setInput

public ObjectInputStream setInput(String str)
                           throws IOException
Set a string to read next encoded object stream.

Supported API: true

Parameters:
str - the String
Returns:
the ObjectInputStream for reading this string
Throws:
IOException

setInput

public ObjectInputStream setInput(InputStream in)
                           throws IOException
Set a input stream to read next object stream.

Supported API: true

Parameters:
in - the InputStream
Returns:
the ObjectInputStream for reading this stream
Throws:
IOException