1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package mnemosyne.archiver;
17
18 import org.apache.commons.logging.Log;
19 import org.apache.commons.logging.LogFactory;
20
21 import java.io.ObjectInputStream;
22 import java.io.InputStream;
23 import java.io.IOException;
24
25 import mnemosyne.core.PersistentObject;
26
27 /***
28 * @version $Id: ArchiveInputStream.java,v 1.1.1.1 2004/08/07 06:40:49 charlesblaxland Exp $
29 */
30 public class ArchiveInputStream extends ObjectInputStream
31 {
32 private static final Log log = LogFactory.getLog(ArchiveInputStream.class);
33
34 public ArchiveInputStream(InputStream in)
35 throws IOException
36 {
37 super(in);
38 enableResolveObject(true);
39 }
40
41 protected Object resolveObject(Object obj) throws IOException
42 {
43 if (obj instanceof PersistentObject)
44 {
45 PersistentObject persistentObject = (PersistentObject) obj;
46 obj = persistentObject.findTargetObject();
47 if (log.isTraceEnabled())
48 {
49 log.trace("Resolved object " + persistentObject + " to instance of type " + obj);
50 }
51 }
52 return obj;
53 }
54 }