package tc.oc.commons.core.inject;
import javax.inject.Provider;
import com.google.inject.TypeLiteral;
import com.google.inject.util.Types;
@FunctionalInterface
public interface Transformer<T> {
/**
* Provide an instance of {@link T} given the upstream {@link Provider}.
*
* This method is not required to invoke the upstream provider, and if it doesn't,
* then no upstream {@link Transformer}s or {@link Provider}s are called at all.
*/
T transform(Provider<T> provider);
}