package org.sdif4j.guice;
import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.name.Names;
import org.sdif4j.InjectContext;
import javax.inject.Provider;
/**
* Base Guice InjectContext implementation
*
* @author Sergey Chernov
*/
public abstract class AbstractGuiceInjectContext implements InjectContext {
protected abstract Injector getInjector();
public final <T> Provider<T> getProvider(Class<T> clazz) {
return getInjector().getProvider(clazz);
}
public final <T> T getInstance(Class<T> clazz) {
return getInjector().getInstance(clazz);
}
public final <T> T getInstance(Class<T> clazz, String name) {
return getInjector().getInstance(Key.get(clazz, Names.named(name)));
}
public final void injectMembers(Object instance) {
getInjector().injectMembers(instance);
}
}