|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
T
- The type to be externalized.public interface ExternalizableStrategyIfc<T>
This interface defines a strategy to serialize/deserialize an object. This interface is useful in scenarios where one may not want to subclass to ensure a class is serializable (that isn't already serializable) or the class to serialize cannot be subclassed (either abstract or final).
The following example illustrates a trivial implementation of a person and a anExternablizableStrategyIfc
that can externalize the person.
Note: The person is declared final.
public final class Person { private String _name; private int _age; public Person () { } public String getName () { return _name; } public void setName ( final String name ) { _name = name; } public int getAge () { return _age; } public void setAge ( final String age ) { _age = age; } } public final PersonExternalizableStrategy implements ExternablizableStrategyIfc <Person> { public void writeExternal ( final Person person, final ObjectOutput objectOutput ) throws IOException { objectOutput.writeObject ( person.getName () ); objectOutput.writInt ( person.getAge () ); } public void readExternal ( final Person person, final ObjectInput objectInput ) throws IOException, ClassNotFoundException { person.setName ( ( String ) objectInput.readObject () ); person.setAge ( objectInput.readInt () ); } } public final class PeopleCollection implements Externalizable { private final List_personList; = new LinkedList (); private final ExternalizableStrategyIfc _strategy; public PeopleCollection ( final ExternalizableStrategyIfc strategy ) { _strategy = strategy; } public PeopleCollection () { this ( new PersonExternalizableStrategy () ); } public void writeExternal ( final ObjectOutput out ) throws IOException { out.write for ( final Person person : _personList ) { _strategy.writeExternal ( person, out ); } } public void readExternal ( final ObjectInput in ) throws IOException, ClassNotFoundException { } }
Modifications: $Date: 2008-12-02 12:32:45 -0500 (Tue, 02 Dec 2008) $ $Revision: 479 $ $Author: sfloess $ $HeadURL: https://jplate.svn.sourceforge.net/svnroot/jplate/trunk/src/dev/java/org/jplate/foundation/io/ExternalizableStrategyIfc.java $
Method Summary | |
---|---|
void |
readExternal(T externalizable,
java.io.ObjectInput objectInput)
Deserialize externalizable from objectInput . |
void |
writeExternal(T externalizable,
java.io.ObjectOutput objectOutput)
Serialize externalizable to objectOutput . |
Method Detail |
---|
void writeExternal(T externalizable, java.io.ObjectOutput objectOutput) throws java.io.IOException
externalizable
to objectOutput
.
externalizable
- The object to serialize to objectOutput.objectOutput
- The stream to write externalizable
to.
java.io.IOException
- If any I/O exceptions arise.void readExternal(T externalizable, java.io.ObjectInput objectInput) throws java.io.IOException, java.lang.ClassNotFoundException
externalizable
from objectInput
.
externalizable
- The object to deserialize from objectInput.objectInput
- The stream to read externalizable
from.
java.io.IOException
- If any I/O exceptions arise.
java.lang.ClassNotFoundException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |