public final class com.oracle.truffle.dsl.processor.AnnotationProcessor<M extends com.oracle.truffle.dsl.processor.model.Template>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.dsl.processor.AnnotationProcessor
super_class: java.lang.Object
{
private final com.oracle.truffle.dsl.processor.parser.AbstractParser<M> parser;
descriptor: Lcom/oracle/truffle/dsl/processor/parser/AbstractParser;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/oracle/truffle/dsl/processor/parser/AbstractParser<TM;>;
private final com.oracle.truffle.dsl.processor.generator.CodeTypeElementFactory<M> factory;
descriptor: Lcom/oracle/truffle/dsl/processor/generator/CodeTypeElementFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/oracle/truffle/dsl/processor/generator/CodeTypeElementFactory<TM;>;
private final java.util.Set<java.lang.String> processedElements;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private final java.util.Map<java.lang.String, java.util.Map<java.lang.String, javax.lang.model.element.Element>> serviceRegistrations;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljavax/lang/model/element/Element;>;>;
void <init>(com.oracle.truffle.dsl.processor.parser.AbstractParser<M>, com.oracle.truffle.dsl.processor.generator.CodeTypeElementFactory<M>);
descriptor: (Lcom/oracle/truffle/dsl/processor/parser/AbstractParser;Lcom/oracle/truffle/dsl/processor/generator/CodeTypeElementFactory;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield com.oracle.truffle.dsl.processor.AnnotationProcessor.processedElements:Ljava/util/Set;
2: aload 0
new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
putfield com.oracle.truffle.dsl.processor.AnnotationProcessor.serviceRegistrations:Ljava/util/Map;
3: aload 0
aload 1
putfield com.oracle.truffle.dsl.processor.AnnotationProcessor.parser:Lcom/oracle/truffle/dsl/processor/parser/AbstractParser;
4: aload 0
aload 2
putfield com.oracle.truffle.dsl.processor.AnnotationProcessor.factory:Lcom/oracle/truffle/dsl/processor/generator/CodeTypeElementFactory;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/dsl/processor/AnnotationProcessor<TM;>;
0 6 1 parser Lcom/oracle/truffle/dsl/processor/parser/AbstractParser<TM;>;
0 6 2 factory Lcom/oracle/truffle/dsl/processor/generator/CodeTypeElementFactory<TM;>;
Signature: (Lcom/oracle/truffle/dsl/processor/parser/AbstractParser<TM;>;Lcom/oracle/truffle/dsl/processor/generator/CodeTypeElementFactory<TM;>;)V
MethodParameters:
Name Flags
parser
factory
public com.oracle.truffle.dsl.processor.parser.AbstractParser<M> getParser();
descriptor: ()Lcom/oracle/truffle/dsl/processor/parser/AbstractParser;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.dsl.processor.AnnotationProcessor.parser:Lcom/oracle/truffle/dsl/processor/parser/AbstractParser;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/dsl/processor/AnnotationProcessor<TM;>;
Signature: ()Lcom/oracle/truffle/dsl/processor/parser/AbstractParser<TM;>;
public java.util.Map<java.lang.String, java.util.Map<java.lang.String, javax.lang.model.element.Element>> getServiceRegistrations();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.dsl.processor.AnnotationProcessor.serviceRegistrations:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/dsl/processor/AnnotationProcessor<TM;>;
Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljavax/lang/model/element/Element;>;>;
public void registerService(java.lang.String, java.lang.String, javax.lang.model.element.Element);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljavax/lang/model/element/Element;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
instanceof com.oracle.truffle.dsl.processor.java.model.GeneratedElement
ifeq 2
1: new java.lang.IllegalArgumentException
dup
ldc "Service source element must not be generated."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.dsl.processor.AnnotationProcessor.serviceRegistrations:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
astore 4
start local 4 3: aload 4
ifnonnull 6
4: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 4
5: aload 0
getfield com.oracle.truffle.dsl.processor.AnnotationProcessor.serviceRegistrations:Ljava/util/Map;
aload 1
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: StackMap locals: java.util.Map
StackMap stack:
aload 4
aload 2
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/dsl/processor/AnnotationProcessor<TM;>;
0 8 1 serviceBinaryName Ljava/lang/String;
0 8 2 implBinaryName Ljava/lang/String;
0 8 3 sourceElement Ljavax/lang/model/element/Element;
3 8 4 services Ljava/util/Map<Ljava/lang/String;Ljavax/lang/model/element/Element;>;
MethodParameters:
Name Flags
serviceBinaryName
implBinaryName
sourceElement
public void process(javax.lang.model.element.Element, boolean);
descriptor: (Ljavax/lang/model/element/Element;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifne 5
1: aload 1
checkcast javax.lang.model.element.TypeElement
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getQualifiedName:(Ljavax/lang/model/element/TypeElement;)Ljava/lang/String;
astore 3
start local 3 2: aload 0
getfield com.oracle.truffle.dsl.processor.AnnotationProcessor.processedElements:Ljava/util/Set;
aload 3
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 4
3: return
4: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield com.oracle.truffle.dsl.processor.AnnotationProcessor.processedElements:Ljava/util/Set;
aload 3
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 3 5: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
invokevirtual com.oracle.truffle.dsl.processor.AnnotationProcessor.processImpl:(Ljavax/lang/model/element/Element;Z)V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/dsl/processor/AnnotationProcessor<TM;>;
0 7 1 element Ljavax/lang/model/element/Element;
0 7 2 callback Z
2 5 3 qualifiedName Ljava/lang/String;
MethodParameters:
Name Flags
element
callback
private void processImpl(javax.lang.model.element.Element, boolean);
descriptor: (Ljavax/lang/model/element/Element;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=11, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.getInstance:()Lcom/oracle/truffle/dsl/processor/ProcessorContext;
astore 3
start local 3 1: aload 1
checkcast javax.lang.model.element.TypeElement
astore 4
start local 4 2: aload 3
aload 4
invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
iconst_0
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTemplate:(Ljavax/lang/model/type/TypeMirror;Z)Lcom/oracle/truffle/dsl/processor/model/Template;
astore 5
start local 5 3: aload 3
aload 4
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.containsTemplate:(Ljavax/lang/model/element/TypeElement;)Z
ifeq 4
iconst_0
goto 5
StackMap locals: com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.TypeElement com.oracle.truffle.dsl.processor.model.Template
StackMap stack:
4: iconst_1
StackMap locals:
StackMap stack: int
5: istore 6
start local 6 6: iload 6
ifne 7
iload 2
ifne 29
7: StackMap locals: int
StackMap stack:
aload 3
aload 4
aconst_null
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.registerTemplate:(Ljavax/lang/model/element/TypeElement;Lcom/oracle/truffle/dsl/processor/model/Template;)V
8: aload 0
getfield com.oracle.truffle.dsl.processor.AnnotationProcessor.parser:Lcom/oracle/truffle/dsl/processor/parser/AbstractParser;
aload 1
invokevirtual com.oracle.truffle.dsl.processor.parser.AbstractParser.parse:(Ljavax/lang/model/element/Element;)Lcom/oracle/truffle/dsl/processor/model/MessageContainer;
checkcast com.oracle.truffle.dsl.processor.model.Template
astore 5
9: aload 3
aload 4
aload 5
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.registerTemplate:(Ljavax/lang/model/element/TypeElement;Lcom/oracle/truffle/dsl/processor/model/Template;)V
10: aload 5
ifnull 29
11: aload 0
getfield com.oracle.truffle.dsl.processor.AnnotationProcessor.factory:Lcom/oracle/truffle/dsl/processor/generator/CodeTypeElementFactory;
invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.getInstance:()Lcom/oracle/truffle/dsl/processor/ProcessorContext;
aload 0
aload 5
invokevirtual com.oracle.truffle.dsl.processor.generator.CodeTypeElementFactory.create:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;Lcom/oracle/truffle/dsl/processor/AnnotationProcessor;Ljava/lang/Object;)Ljava/util/List;
astore 7
start local 7 12: goto 17
end local 7 StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 8
start local 8 14: new java.lang.RuntimeException
dup
ldc "Failed to write code for %s."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getQualifiedName:(Ljavax/lang/model/element/TypeElement;)Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
astore 9
start local 9 15: aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
16: aload 8
athrow
end local 9 end local 8 start local 7 17: StackMap locals: java.util.List
StackMap stack:
aload 7
ifnull 18
aload 7
invokeinterface java.util.List.isEmpty:()Z
ifeq 19
18: StackMap locals:
StackMap stack:
return
19: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 28
StackMap locals: com.oracle.truffle.dsl.processor.AnnotationProcessor javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.TypeElement com.oracle.truffle.dsl.processor.model.Template int java.util.List top java.util.Iterator
StackMap stack:
20: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.dsl.processor.java.model.CodeTypeElement
astore 8
start local 8 21: aload 8
aload 5
invokevirtual com.oracle.truffle.dsl.processor.model.Template.getTemplateTypeAnnotation:()Ljavax/lang/model/element/AnnotationMirror;
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.setGeneratorAnnotationMirror:(Ljavax/lang/model/element/AnnotationMirror;)V
22: aload 8
aload 5
invokevirtual com.oracle.truffle.dsl.processor.model.Template.getTemplateType:()Ljavax/lang/model/element/TypeElement;
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.setGeneratorElement:(Ljavax/lang/model/element/Element;)V
23: aload 3
ldc Ljava/lang/Override;
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
checkcast javax.lang.model.type.DeclaredType
astore 10
start local 10 24: aload 8
new com.oracle.truffle.dsl.processor.java.transform.GenerateOverrideVisitor
dup
aload 10
invokespecial com.oracle.truffle.dsl.processor.java.transform.GenerateOverrideVisitor.<init>:(Ljavax/lang/model/type/DeclaredType;)V
aconst_null
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.accept:(Ljavax/lang/model/element/ElementVisitor;Ljava/lang/Object;)Ljava/lang/Object;
pop
25: aload 8
new com.oracle.truffle.dsl.processor.java.transform.FixWarningsVisitor
dup
aload 5
invokevirtual com.oracle.truffle.dsl.processor.model.Template.getTemplateType:()Ljavax/lang/model/element/TypeElement;
aload 10
invokespecial com.oracle.truffle.dsl.processor.java.transform.FixWarningsVisitor.<init>:(Ljavax/lang/model/element/Element;Ljavax/lang/model/type/DeclaredType;)V
aconst_null
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.accept:(Ljavax/lang/model/element/ElementVisitor;Ljava/lang/Object;)Ljava/lang/Object;
pop
26: iload 2
ifne 28
27: aload 8
new com.oracle.truffle.dsl.processor.CodeWriter
dup
aload 3
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getEnvironment:()Ljavax/annotation/processing/ProcessingEnvironment;
aload 1
invokespecial com.oracle.truffle.dsl.processor.CodeWriter.<init>:(Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/Element;)V
aconst_null
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.accept:(Ljavax/lang/model/element/ElementVisitor;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 10 end local 8 28: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
end local 7 29: StackMap locals: com.oracle.truffle.dsl.processor.AnnotationProcessor javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.TypeElement com.oracle.truffle.dsl.processor.model.Template int
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lcom/oracle/truffle/dsl/processor/AnnotationProcessor<TM;>;
0 30 1 element Ljavax/lang/model/element/Element;
0 30 2 callback Z
1 30 3 context Lcom/oracle/truffle/dsl/processor/ProcessorContext;
2 30 4 type Ljavax/lang/model/element/TypeElement;
3 30 5 model TM;
6 30 6 firstRun Z
12 13 7 units Ljava/util/List<Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;>;
17 29 7 units Ljava/util/List<Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;>;
14 17 8 e Ljava/lang/Throwable;
15 17 9 ex Ljava/lang/RuntimeException;
21 28 8 unit Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
24 28 10 overrideType Ljavax/lang/model/type/DeclaredType;
Exception table:
from to target type
11 12 13 Class java.lang.Throwable
MethodParameters:
Name Flags
element
callback
}
Signature: <M:Lcom/oracle/truffle/dsl/processor/model/Template;>Ljava/lang/Object;
SourceFile: "AnnotationProcessor.java"