private void processActivities()

in src/main/java/com/amazonaws/eclipse/simpleworkflow/asynchrony/annotationprocessor/AsynchronyDeciderAnnotationProcessor.java [95:129]


    private void processActivities(final Element activities) {
        DeclaredType activitiesAnnotationType = ProcessorUtils.getDeclaredType(processingEnv,
                ProcessorConstants.ACTIVITIES_ANNOTATION_TYPE_CLASS_NAME);

        com.amazonaws.eclipse.simpleworkflow.asynchrony.objectmodel.Activities activitiesDefinition = ProcessorUtils.getActivitiesModel(
                processingEnv, (TypeElement) activities, activitiesAnnotationType, annotationsToExcludeFromCopying);

        String packageName = processingEnv.getElementUtils().getPackageOf(activities).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,
                            activities);
                    fileStream = sourceFile.openOutputStream();
                }
                catch (IOException e) {
                    processingEnv.getMessager().printMessage(Kind.ERROR,
                            "Unable to generate target class for element [reason: " + e.toString() + "]", activities);
                }

                if (fileStream != null)
                    return new PrintWriter(fileStream);

                return null;
            }
        };

        ActivitiesCodeGenerator codeGenerator = new ActivitiesCodeGenerator(packageName, activities.getSimpleName().toString(),
                activitiesDefinition, fileCreator);
        codeGenerator.generateCode();
    }