use of org.robobinding.codegen.apt.ProcessingContext in project RoboBinding by RoboBinding.
the class PresentationModelProcessor method process.
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
RoundContext roundContext = new RoundContext(roundEnv, processingEnv.getTypeUtils(), processingEnv.getElementUtils(), processingEnv.getMessager());
Set<WrappedTypeElement> typeElements = roundContext.typeElementsAnnotatedWith(PresentationModel.class, new PresentationModelFilter());
for (WrappedTypeElement typeElement : typeElements) {
String presentationModelObjectTypeName = PresentationModelObjectLoader.getObjectClassName(typeElement.binaryName());
PresentationModelInfoBuilder builder = new PresentationModelInfoBuilder(typeElement, presentationModelObjectTypeName, true);
PresentationModelInfo presentationModelInfo = builder.build();
Logger log = typeElement.logger();
ProcessingContext context = new ProcessingContext(processingEnv.getTypeUtils(), processingEnv.getElementUtils(), processingEnv.getMessager());
try {
if (isItemPresentationModelAlso(typeElement)) {
createItemPresentationModelObjectSourceFiles(presentationModelInfo, context);
} else {
generateAllClasses(presentationModelInfo, context, log);
}
} catch (IOException e) {
log.error(e);
throw new RuntimeException(e);
} catch (JClassAlreadyExistsException e) {
log.error(e);
throw new RuntimeException(e);
} catch (ClassNotFoundException e) {
log.error(e);
throw new RuntimeException(e);
}
}
return true;
}
Aggregations