Mercurial > hg > graal-jvmci-8
comparison 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 |
comparison
equal
deleted
inserted
replaced
18752:1acaa69ff61b | 18753:f6b8787dc113 |
---|---|
38 * THIS IS NOT PUBLIC API. | 38 * THIS IS NOT PUBLIC API. |
39 */ | 39 */ |
40 class AnnotationProcessor<M extends Template> { | 40 class AnnotationProcessor<M extends Template> { |
41 | 41 |
42 private final AbstractParser<M> parser; | 42 private final AbstractParser<M> parser; |
43 private final AbstractCompilationUnitFactory<M> factory; | 43 private final CodeTypeElementFactory<M> factory; |
44 | 44 |
45 private final Set<String> processedElements = new HashSet<>(); | 45 private final Set<String> processedElements = new HashSet<>(); |
46 | 46 |
47 public AnnotationProcessor(AbstractParser<M> parser, AbstractCompilationUnitFactory<M> factory) { | 47 public AnnotationProcessor(AbstractParser<M> parser, CodeTypeElementFactory<M> factory) { |
48 this.parser = parser; | 48 this.parser = parser; |
49 this.factory = factory; | 49 this.factory = factory; |
50 } | 50 } |
51 | 51 |
52 public AbstractParser<M> getParser() { | 52 public AbstractParser<M> getParser() { |
75 context.registerTemplate(type, null); | 75 context.registerTemplate(type, null); |
76 model = parser.parse(element); | 76 model = parser.parse(element); |
77 context.registerTemplate(type, model); | 77 context.registerTemplate(type, model); |
78 | 78 |
79 if (model != null) { | 79 if (model != null) { |
80 CodeCompilationUnit unit = factory.process(null, model); | 80 CodeTypeElement unit = factory.create(ProcessorContext.getInstance(), model); |
81 if (unit == null) { | |
82 return; | |
83 } | |
81 unit.setGeneratorAnnotationMirror(model.getTemplateTypeAnnotation()); | 84 unit.setGeneratorAnnotationMirror(model.getTemplateTypeAnnotation()); |
82 unit.setGeneratorElement(model.getTemplateType()); | 85 unit.setGeneratorElement(model.getTemplateType()); |
83 | 86 |
84 DeclaredType overrideType = (DeclaredType) context.getType(Override.class); | 87 DeclaredType overrideType = (DeclaredType) context.getType(Override.class); |
85 DeclaredType unusedType = (DeclaredType) context.getType(SuppressWarnings.class); | 88 DeclaredType unusedType = (DeclaredType) context.getType(SuppressWarnings.class); |