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);