*/
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
- *
*/
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;
}
}
}