package proton.inject.state;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import proton.inject.Injector;
import proton.inject.listener.FieldListener;
import proton.inject.scope.ContextScoped;
public class RetainStateListener implements FieldListener {
@Override
public void hear(Injector injector, Object receiver, Class<? extends Annotation> scope, Field field, Annotation ann) {
if (ann.annotationType() != RetainState.class)
throw new IllegalStateException(); // XXX
if (ContextScoped.class == scope)
injector.getInstance(StateManager.class).registerAndRestore(injector.getContext(), receiver, field);
}
}