in src/main/java/com/amazonaws/eclipse/simpleworkflow/asynchrony/annotationprocessor/AsynchronyDeciderAnnotationProcessor.java [131:164]
private void processWorkflow(RoundEnvironment roundEnv, final Element workflow) {
DeclaredType workflowAnnotationType = ProcessorUtils.getDeclaredType(processingEnv,
ProcessorConstants.WORKFLOW_ANNOTATION_TYPE_CLASS_NAME);
com.amazonaws.eclipse.simpleworkflow.asynchrony.objectmodel.Workflow workflowDefinition = ProcessorUtils.getWorkflowModel(
processingEnv, (TypeElement) workflow, workflowAnnotationType, annotationsToExcludeFromCopying);
String packageName = processingEnv.getElementUtils().getPackageOf(workflow).getQualifiedName().toString();
SourceFileCreator fileCreator = new SourceFileCreator() {
//@Override
public PrintWriter createSourceFile(String packageName, String className) {
OutputStream fileStream = null;
try {
JavaFileObject sourceFile = processingEnv.getFiler().createSourceFile(packageName + "." + className, workflow);
fileStream = sourceFile.openOutputStream();
}
catch (IOException e) {
processingEnv.getMessager().printMessage(Kind.ERROR,
"Unable to generate" + " target class for elmenet [reason: " + e.toString() + "]", workflow);
}
if (fileStream != null)
return new PrintWriter(fileStream);
return null;
}
};
WorkflowCodeGenerator workflowCodeGenerator = new WorkflowCodeGenerator(packageName, workflow.getSimpleName().toString(),
workflowDefinition, fileCreator);
workflowCodeGenerator.generateCode();
}