public class com.oracle.truffle.object.dsl.processor.LayoutProcessor extends javax.annotation.processing.AbstractProcessor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.object.dsl.processor.LayoutProcessor
super_class: javax.annotation.processing.AbstractProcessor
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial javax.annotation.processing.AbstractProcessor.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/dsl/processor/LayoutProcessor;
public boolean process(java.util.Set<? extends javax.lang.model.element.TypeElement>, javax.annotation.processing.RoundEnvironment);
descriptor: (Ljava/util/Set;Ljavax/annotation/processing/RoundEnvironment;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.object.dsl.processor.LayoutProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.enter:(Ljavax/annotation/processing/ProcessingEnvironment;)Lcom/oracle/truffle/dsl/processor/ProcessorContext;
astore 3
start local 3 1: aload 3
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
astore 4
start local 4 2: aload 2
aload 4
getfield com.oracle.truffle.dsl.processor.TruffleTypes.Layout:Ljavax/lang/model/type/DeclaredType;
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.castTypeElement:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/TypeElement;
invokeinterface javax.annotation.processing.RoundEnvironment.getElementsAnnotatedWith:(Ljavax/lang/model/element/TypeElement;)Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 5
StackMap locals: com.oracle.truffle.object.dsl.processor.LayoutProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes top java.util.Iterator
StackMap stack:
3: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.Element
astore 5
start local 5 4: aload 0
aload 5
checkcast javax.lang.model.element.TypeElement
invokevirtual com.oracle.truffle.object.dsl.processor.LayoutProcessor.processLayout:(Ljavax/lang/model/element/TypeElement;)V
end local 5 5: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 4 6: goto 10
StackMap locals: com.oracle.truffle.object.dsl.processor.LayoutProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext
StackMap stack: java.lang.Throwable
7: astore 7
8: invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.leave:()V
9: aload 7
athrow
10: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.leave:()V
11: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/object/dsl/processor/LayoutProcessor;
0 12 1 annotations Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;
0 12 2 roundEnvironment Ljavax/annotation/processing/RoundEnvironment;
1 12 3 context Lcom/oracle/truffle/dsl/processor/ProcessorContext;
2 6 4 types Lcom/oracle/truffle/dsl/processor/TruffleTypes;
4 5 5 element Ljavax/lang/model/element/Element;
Exception table:
from to target type
1 7 7 any
Signature: (Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;Ljavax/annotation/processing/RoundEnvironment;)Z
MethodParameters:
Name Flags
annotations
roundEnvironment
public javax.lang.model.SourceVersion getSupportedSourceVersion();
descriptor: ()Ljavax/lang/model/SourceVersion;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic javax.lang.model.SourceVersion.latest:()Ljavax/lang/model/SourceVersion;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/dsl/processor/LayoutProcessor;
public javax.annotation.processing.ProcessingEnvironment getProcessingEnv();
descriptor: ()Ljavax/annotation/processing/ProcessingEnvironment;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.dsl.processor.LayoutProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/dsl/processor/LayoutProcessor;
private void processLayout(javax.lang.model.element.TypeElement);
descriptor: (Ljavax/lang/model/element/TypeElement;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=9, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.object.dsl.processor.LayoutParser
dup
aload 0
invokespecial com.oracle.truffle.object.dsl.processor.LayoutParser.<init>:(Lcom/oracle/truffle/object/dsl/processor/LayoutProcessor;)V
astore 2
start local 2 1: aload 2
aload 1
invokevirtual com.oracle.truffle.object.dsl.processor.LayoutParser.parse:(Ljavax/lang/model/element/TypeElement;)V
2: aload 2
invokevirtual com.oracle.truffle.object.dsl.processor.LayoutParser.build:()Lcom/oracle/truffle/object/dsl/processor/model/LayoutModel;
astore 3
start local 3 3: new com.oracle.truffle.object.dsl.processor.LayoutGenerator
dup
aload 3
aload 0
getfield com.oracle.truffle.object.dsl.processor.LayoutProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
invokespecial com.oracle.truffle.object.dsl.processor.LayoutGenerator.<init>:(Lcom/oracle/truffle/object/dsl/processor/model/LayoutModel;Ljavax/annotation/processing/ProcessingEnvironment;)V
astore 4
start local 4 4: aload 0
getfield com.oracle.truffle.object.dsl.processor.LayoutProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
invokeinterface javax.annotation.processing.ProcessingEnvironment.getFiler:()Ljavax/annotation/processing/Filer;
aload 4
invokevirtual com.oracle.truffle.object.dsl.processor.LayoutGenerator.getGeneratedClassName:()Ljava/lang/String;
iconst_1
anewarray javax.lang.model.element.Element
dup
iconst_0
aload 1
aastore
invokeinterface javax.annotation.processing.Filer.createSourceFile:(Ljava/lang/CharSequence;[Ljavax/lang/model/element/Element;)Ljavax/tools/JavaFileObject;
astore 5
start local 5 5: aconst_null
astore 6
aconst_null
astore 7
6: new java.io.PrintStream
dup
aload 5
invokeinterface javax.tools.JavaFileObject.openOutputStream:()Ljava/io/OutputStream;
iconst_0
ldc "UTF8"
invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;ZLjava/lang/String;)V
astore 8
start local 8 7: aload 4
aload 8
invokevirtual com.oracle.truffle.object.dsl.processor.LayoutGenerator.generate:(Ljava/io/PrintStream;)V
8: aload 8
ifnull 16
aload 8
invokevirtual java.io.PrintStream.close:()V
goto 16
StackMap locals: com.oracle.truffle.object.dsl.processor.LayoutProcessor javax.lang.model.element.TypeElement com.oracle.truffle.object.dsl.processor.LayoutParser com.oracle.truffle.object.dsl.processor.model.LayoutModel com.oracle.truffle.object.dsl.processor.LayoutGenerator javax.tools.JavaFileObject java.lang.Throwable java.lang.Throwable java.io.PrintStream
StackMap stack: java.lang.Throwable
9: astore 6
aload 8
ifnull 10
aload 8
invokevirtual java.io.PrintStream.close:()V
end local 8 StackMap locals:
StackMap stack:
10: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 7
aload 6
ifnonnull 12
aload 7
astore 6
goto 13
StackMap locals:
StackMap stack:
12: aload 6
aload 7
if_acmpeq 13
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
13: aload 6
athrow
end local 5 end local 4 end local 3 end local 2 14: StackMap locals: com.oracle.truffle.object.dsl.processor.LayoutProcessor javax.lang.model.element.TypeElement
StackMap stack: java.io.IOException
astore 2
start local 2 15: aload 0
aload 1
ldc "IO error %s while writing code generated from @Layout"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
aastore
invokevirtual com.oracle.truffle.object.dsl.processor.LayoutProcessor.reportError:(Ljavax/lang/model/element/Element;Ljava/lang/String;[Ljava/lang/Object;)V
end local 2 16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/object/dsl/processor/LayoutProcessor;
0 17 1 layoutElement Ljavax/lang/model/element/TypeElement;
1 14 2 parser Lcom/oracle/truffle/object/dsl/processor/LayoutParser;
3 14 3 layout Lcom/oracle/truffle/object/dsl/processor/model/LayoutModel;
4 14 4 generator Lcom/oracle/truffle/object/dsl/processor/LayoutGenerator;
5 14 5 output Ljavax/tools/JavaFileObject;
7 10 8 stream Ljava/io/PrintStream;
15 16 2 e Ljava/io/IOException;
Exception table:
from to target type
7 8 9 any
6 11 11 any
0 14 14 Class java.io.IOException
MethodParameters:
Name Flags
layoutElement
public void reportError(javax.lang.model.element.Element, java.lang.String, java.lang.Object[]);
descriptor: (Ljavax/lang/model/element/Element;Ljava/lang/String;[Ljava/lang/Object;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
aload 3
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 4
start local 4 1: aload 0
getfield com.oracle.truffle.object.dsl.processor.LayoutProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
invokeinterface javax.annotation.processing.ProcessingEnvironment.getMessager:()Ljavax/annotation/processing/Messager;
getstatic javax.tools.Diagnostic$Kind.ERROR:Ljavax/tools/Diagnostic$Kind;
aload 4
aload 1
invokeinterface javax.annotation.processing.Messager.printMessage:(Ljavax/tools/Diagnostic$Kind;Ljava/lang/CharSequence;Ljavax/lang/model/element/Element;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/object/dsl/processor/LayoutProcessor;
0 3 1 element Ljavax/lang/model/element/Element;
0 3 2 messageFormat Ljava/lang/String;
0 3 3 formatArgs [Ljava/lang/Object;
1 3 4 message Ljava/lang/String;
MethodParameters:
Name Flags
element
messageFormat
formatArgs
}
SourceFile: "LayoutProcessor.java"
InnerClasses:
public final Kind = javax.tools.Diagnostic$Kind of javax.tools.Diagnostic
RuntimeVisibleAnnotations:
javax.annotation.processing.SupportedAnnotationTypes(value = {"com.oracle.truffle.api.object.dsl.Layout"})