for (final Class<?> clazz : classpathScanner.getClasses()) {
if (ignoreClasses.contains(clazz) || !clazz.isAnnotationPresent(AutoBindSingleton.class)) {
continue;
}
AutoBindSingleton annotation = clazz.getAnnotation(AutoBindSingleton.class);
if (Module.class.isAssignableFrom(clazz)) {
Preconditions.checkState(
annotation.value() == AutoBindSingleton.class,
"@AutoBindSingleton value cannot be set for Modules");
Preconditions.checkState(
annotation.baseClass() == AutoBindSingleton.class,
"@AutoBindSingleton value cannot be set for Modules");
Preconditions.checkState(
!annotation.multiple(),
"@AutoBindSingleton(multiple=true) value cannot be set for Modules");
LOG.info("Found @AutoBindSingleton annotated module : {} ", clazz.getName());
binder.include((Class<? extends Module>) clazz);
}