diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/AnnotationProcessor.java @ 18753:f6b8787dc113

Truffle-DSL: replace complex factory system with a much simpler version
author Christian Humer <christian.humer@gmail.com>
date Mon, 29 Dec 2014 23:38:21 +0100
parents 45c8f64978d6
children 941761f6b736
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/AnnotationProcessor.java	Mon Dec 29 23:38:16 2014 +0100
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/AnnotationProcessor.java	Mon Dec 29 23:38:21 2014 +0100
@@ -40,11 +40,11 @@
 class AnnotationProcessor<M extends Template> {
 
     private final AbstractParser<M> parser;
-    private final AbstractCompilationUnitFactory<M> factory;
+    private final CodeTypeElementFactory<M> factory;
 
     private final Set<String> processedElements = new HashSet<>();
 
-    public AnnotationProcessor(AbstractParser<M> parser, AbstractCompilationUnitFactory<M> factory) {
+    public AnnotationProcessor(AbstractParser<M> parser, CodeTypeElementFactory<M> factory) {
         this.parser = parser;
         this.factory = factory;
     }
@@ -77,7 +77,10 @@
             context.registerTemplate(type, model);
 
             if (model != null) {
-                CodeCompilationUnit unit = factory.process(null, model);
+                CodeTypeElement unit = factory.create(ProcessorContext.getInstance(), model);
+                if (unit == null) {
+                    return;
+                }
                 unit.setGeneratorAnnotationMirror(model.getTemplateTypeAnnotation());
                 unit.setGeneratorElement(model.getTemplateType());