X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=wicket%2Fjoe%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fwicket%2Finject%2FInjectionBehavior.java;h=45da4a98efeb99166e3c02be925271229875ec4a;hb=HEAD;hp=3d648c4e8c4da65a9fca7ca3c5997f9812035e5f;hpb=4b722c2d9a85244abb3c30e646c5bb3b4ba1c00e;p=utils diff --git a/wicket/joe/src/main/java/org/wamblee/wicket/inject/InjectionBehavior.java b/wicket/joe/src/main/java/org/wamblee/wicket/inject/InjectionBehavior.java index 3d648c4e..45da4a98 100644 --- a/wicket/joe/src/main/java/org/wamblee/wicket/inject/InjectionBehavior.java +++ b/wicket/joe/src/main/java/org/wamblee/wicket/inject/InjectionBehavior.java @@ -15,33 +15,44 @@ */ package org.wamblee.wicket.inject; +import java.io.IOException; + import org.apache.wicket.Component; import org.apache.wicket.behavior.AbstractBehavior; import org.wamblee.inject.InjectorBuilder; /** * Injection behavior that performs dependency injection after - * serialization/deserialisation of the object. - * - * @author Erik Brakkee + * serialization/deserialisation of the object. * + * @author Erik Brakkee */ public class InjectionBehavior extends AbstractBehavior { - private transient boolean injectionUptodate; - + private static final long serialVersionUID = 7363393083209418693L; + private Component _component; + private boolean _injectionUptodate; + /** * Constructs the behavior. */ - public InjectionBehavior() { - injectionUptodate = true; + public InjectionBehavior(Component aComponent) { + _component = aComponent; } - - @Override - public void beforeRender(Component aComponent) { - if (!injectionUptodate) { + + private void writeObject(java.io.ObjectOutputStream stream) throws IOException { + stream.defaultWriteObject(); + } + + private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException { + stream.defaultReadObject(); + injectIfNeeded(_component); + } + + private void injectIfNeeded(Component aComponent) { + if (!_injectionUptodate) { InjectorBuilder.getInjector().inject(aComponent); - injectionUptodate = true; + _injectionUptodate = true; } } }