{
if ( clazz.isAnnotationPresent(AutoBindSingleton.class) && ConfigurationProvider.class.isAssignableFrom(clazz) )
{
AutoBindSingleton annotation = clazz.getAnnotation(AutoBindSingleton.class);
Preconditions.checkState(annotation.value() == AutoBindSingleton.class, "@AutoBindSingleton value cannot be set for ConfigurationProviders");
Preconditions.checkState(annotation.baseClass() == AutoBindSingleton.class, "@AutoBindSingleton value cannot be set for ConfigurationProviders");
Preconditions.checkState(!annotation.multiple(), "@AutoBindSingleton(multiple=true) value cannot be set for ConfigurationProviders");
@SuppressWarnings("unchecked")
Class<? extends ConfigurationProvider> configurationProviderClass = (Class<? extends ConfigurationProvider>)clazz;
binder.bindConfigurationProvider().to(configurationProviderClass).asEagerSingleton();