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=ec59f519fe8286b7fadad2b7712f6b32f2b31939;hp=659be7a75a3fdbd90cbab7a6be898a8e8cd3fbf7;hpb=514d7b3dd07385a4150514b8fe09ab7c4ff791c3;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 659be7a7..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,6 +15,8 @@ */ 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; @@ -22,27 +24,35 @@ import org.wamblee.inject.InjectorBuilder; /** * Injection behavior that performs dependency injection after * serialization/deserialisation of the object. - * + * * @author Erik Brakkee - * */ public class InjectionBehavior extends AbstractBehavior { private static final long serialVersionUID = 7363393083209418693L; - private transient boolean injectionUptodate; + private Component _component; + private boolean _injectionUptodate; /** * Constructs the behavior. */ - public InjectionBehavior() { - injectionUptodate = true; + public InjectionBehavior(Component aComponent) { + _component = aComponent; + } + + 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); } - @Override - public void beforeRender(Component aComponent) { - if (!injectionUptodate) { + private void injectIfNeeded(Component aComponent) { + if (!_injectionUptodate) { InjectorBuilder.getInjector().inject(aComponent); - injectionUptodate = true; + _injectionUptodate = true; } } }