return FluentIterable
.from(subTypesOf)
.filter(new Predicate<Class<?>>() {
@Override
public boolean apply(Class<?> input) {
CodeGen annotation = input.getAnnotation(CodeGen.class);
if (annotation != null) {
String[] ignores = annotation.ignore();
for (String ignore : ignores) {
if (ignore.equals(ignoreValue) || ignore.equals(CodeGen.ALL)) {
return false;
}
}