fix: skip invalid bare injectors

This commit is contained in:
zaaarf 2023-04-12 19:26:22 +02:00
parent ee12ab20c1
commit fbd3d0c35a
No known key found for this signature in database
GPG key ID: 82240E075E31FA4C

View file

@ -145,17 +145,21 @@ public class LilleroProcessor extends AbstractProcessor {
if(!validInjectors.isEmpty()) if(!validInjectors.isEmpty())
validInjectors.forEach(this::generateClasses); validInjectors.forEach(this::generateClasses);
} else if(annotation.getQualifiedName().contentEquals(RegisterBareInjector.class.getName())) { } else if(annotation.getQualifiedName().contentEquals(RegisterBareInjector.class.getName())) {
for(Element e : roundEnv.getElementsAnnotatedWith(annotation)) TypeMirror injectorType = this.processingEnv.getElementUtils().getTypeElement("ftbsc.lll.IInjector").asType();
for(Element e : roundEnv.getElementsAnnotatedWith(annotation)) {
if(this.processingEnv.getTypeUtils().isAssignable(e.asType(), injectorType))
this.generatedInjectors.add(((TypeElement) e).getQualifiedName().toString()); this.generatedInjectors.add(((TypeElement) e).getQualifiedName().toString());
else this.processingEnv.getMessager().printMessage(Diagnostic.Kind.WARNING, String.format(
"Class %s annotated with @RegisterBareInjector is not an instance of IInjector, skipping...",
((TypeElement) e).getQualifiedName().toString()
));
}
} }
} }
if (!this.generatedInjectors.isEmpty()) { if (!this.generatedInjectors.isEmpty()) {
generateServiceProvider(); generateServiceProvider();
return true; return true;
} } else return false;
return false;
} }
/** /**