package org.yajul.serialization; import java.io.OutputStream; import java.io.ObjectOutputStream; import java.io.IOException; import java.io.ObjectOutput; /** * Replaces objects using an ObjectReplacer. * <br> * User: josh * Date: Sep 9, 2009 * Time: 11:58:50 AM */ public class ObjectReplacingOutputStream extends ObjectOutputStream { private ObjectReplacer replacer; public ObjectReplacingOutputStream(OutputStream out,ObjectReplacer replacer) throws IOException { super(out); this.replacer = replacer; enableReplaceObject(true); } public ObjectReplacingOutputStream(ObjectOutput out, ObjectReplacer replacer) throws IOException { this(new ObjectOutputStreamAdapter(out),replacer); } @Override protected Object replaceObject(Object obj) throws IOException { if (replacer != null) return replacer.replaceObject(obj); else return super.replaceObject(obj); } }