AutoBindSingleton annotation = clazz.getAnnotation(AutoBindSingleton.class);
if ( javax.inject.Provider.class.isAssignableFrom(clazz) )
{
Preconditions.checkState(annotation.value() == AutoBindSingleton.class, "@AutoBindSingleton value cannot be set for Providers");
Preconditions.checkState(annotation.baseClass() == AutoBindSingleton.class, "@AutoBindSingleton value cannot be set for Providers");
Preconditions.checkState(!annotation.multiple(), "@AutoBindSingleton(multiple=true) value cannot be set for Providers");
LOG.info("Installing @AutoBindSingleton " + clazz.getName());
ProviderBinderUtil.bind(binder(), (Class<javax.inject.Provider>)clazz, Scopes.SINGLETON);
}
else if ( Module.class.isAssignableFrom(clazz) )