1 /**********************************************************************
2 * SerializeAdapter.java
3 * created on 08.08.2004 by netseeker
4 * $Source: /cvsroot/ejoe/EJOE/src/de/netseeker/ejoe/adapter/SerializeAdapter.java,v $
5 * $Date: 2006/02/04 15:16:45 $
6 * $Revision: 1.7 $
7 *********************************************************************/
8
9 package de.netseeker.ejoe.adapter;
10
11 import java.io.IOException;
12 import java.io.InputStream;
13 import java.io.OutputStream;
14 import java.io.Serializable;
15
16 /***
17 * Interface defining all methods required by a (de)serialize adapter.
18 *
19 * @author netseeker aka Michael Manske
20 */
21 public interface SerializeAdapter extends Serializable
22 {
23 /***
24 * Deserializes an object out of an given InputStream
25 *
26 * @param in
27 * the input stream to use for deserialization
28 * @return a deserialized object instance
29 * @throws IOException
30 */
31 public Object read(InputStream in) throws IOException;
32
33 /***
34 * Serializes an object into an output stream
35 *
36 * @param obj
37 * object that should get serialized
38 * @param out
39 * the outputstream into which the object should serialized
40 * @throws IOException
41 */
42 public void write(Object obj, OutputStream out) throws IOException;
43
44 /***
45 * Signals a change of the ContextClassLoader of the current thread to the
46 * adapter. This method will be called when the EJOE client is started with
47 * support for remote classloading.
48 *
49 * @param classLoader
50 */
51 public void handleClassLoaderChange(ClassLoader classLoader);
52 }