package ru.vyarus.guice.ext.managed;
import ru.vyarus.guice.ext.core.type.TypePostProcessor;
import ru.vyarus.guice.ext.managed.destroyable.Destroyable;
import ru.vyarus.guice.ext.managed.destroyable.DestroyableManager;
/**
* Registers beans implementing {@code Destroyable} interface to {@code DestroyableManager} to be executed on shutdown.
*
* @author Vyacheslav Rusakov
* @since 30.06.2014
*/
public class DestroyableTypeProcessor implements TypePostProcessor<Destroyable> {
private final DestroyableManager manager;
public DestroyableTypeProcessor(final DestroyableManager manager) {
this.manager = manager;
}
@Override
public void process(final Destroyable instance) {
manager.register(instance);
}
}