package com.netflix.governator;
import java.util.List;
/**
* Each LifecycleFeature provides support for specific post constructor
* pre-@PostConstruct processing of an injected object. For example,
* {@link ConfigurationLifecycleFeature} enables configuration mapping
* prior to @PostConstruct being called.
*
* {@link LifecycleFeature}s are added via a multibinding. For example,
*
* <pre>
* {@code
* Multibinder.newSetBinder(binder(), LifecycleFeature.class).addBinding().to(ConfigurationLifecycleFeature.class);
* }
* </pre>
*
* @author elandau
*/
public interface LifecycleFeature {
/**
* Return a list of actions to perform on object of this type as part of
* lifecycle processing. Each LifecycleAction will likely be tied to processing
* of a specific field or method.
*
* @param type
* @return
*/
List<LifecycleAction> getActionsForType(Class<?> type);
}