package play.utils.inject; import play.Logger; import play.Logger.ALogger; import com.google.inject.Guice; import com.google.inject.Injector; public class InjectAdapter { private static ALogger log = Logger.of(InjectAdapter.class); private static InjectAdapter instance; private Injector injector; private InjectAdapter() { super(); injector = Guice.createInjector(); instance = this; } public static InjectAdapter getInstance() { if (instance == null) { instance = new InjectAdapter(); } return instance; } public <T> T getInstance(Class<T> paramClass) { if (injector == null) log.warn("injector is null"); T object = injector.getInstance(paramClass); if (log.isDebugEnabled()) log.debug("class : " + paramClass); if (log.isDebugEnabled()) log.debug("instance : " + object); return object; } }