| SerializableMarshaller.java |
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.remoting.marshal.serializable;
import org.jboss.remoting.marshal.Marshaller;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
/**
* Simple marshaller that simply serializes java objects
* using standard output stream.
*
* @author <a href="mailto:tom@jboss.org">Tom Elrod</a>
*/
public class SerializableMarshaller implements Marshaller
{
public final static String DATATYPE = "serializable";
/**
* Take the data object and write to the output. Has ben customized
* for working with ObjectOutputStreams since requires extra messaging.
*
* @param dataObject Object to be writen to output
* @param output The data output to write the object
* data to.
*/
public void write(Object dataObject, OutputStream output) throws IOException
{
ObjectOutputStream oos = null;
if(output instanceof ObjectOutputStream)
{
oos = (ObjectOutputStream) output;
}
else
{
oos = new ObjectOutputStream(output);
}
oos.writeObject(dataObject);
oos.reset();
// to make sure stream gets reset
// Stupid ObjectInputStream holds object graph
// can only be set by the client/server sending a TC_RESET
oos.writeObject(Boolean.TRUE);
oos.flush();
oos.reset();
}
}| SerializableMarshaller.java |