public class io.vertx.codetrans.ConvertingProcessor extends javax.annotation.processing.AbstractProcessor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.vertx.codetrans.ConvertingProcessor
super_class: javax.annotation.processing.AbstractProcessor
{
private static final javax.tools.JavaCompiler javac;
descriptor: Ljavax/tools/JavaCompiler;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Locale locale;
descriptor: Ljava/util/Locale;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.nio.charset.Charset charset;
descriptor: Ljava/nio/charset/Charset;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.util.Map<io.vertx.codetrans.Lang, io.vertx.codetrans.Result> results;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Lio/vertx/codetrans/Lang;Lio/vertx/codetrans/Result;>;
private java.util.List<io.vertx.codetrans.Lang> langs;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lio/vertx/codetrans/Lang;>;
private final java.lang.String fqn;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String method;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private io.vertx.codetrans.CodeTranslator translator;
descriptor: Lio/vertx/codetrans/CodeTranslator;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic javax.tools.ToolProvider.getSystemJavaCompiler:()Ljavax/tools/JavaCompiler;
putstatic io.vertx.codetrans.ConvertingProcessor.javac:Ljavax/tools/JavaCompiler;
1: invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
putstatic io.vertx.codetrans.ConvertingProcessor.locale:Ljava/util/Locale;
2: ldc "UTF-8"
invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
putstatic io.vertx.codetrans.ConvertingProcessor.charset:Ljava/nio/charset/Charset;
return
LocalVariableTable:
Start End Slot Name Signature
public static java.util.Map<io.vertx.codetrans.Lang, io.vertx.codetrans.Result> convert(java.lang.ClassLoader, java.util.List<io.vertx.codetrans.Lang>, java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/ClassLoader;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 2
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 5
start local 5 1: aload 5
ifnonnull 3
2: new java.lang.Exception
dup
new java.lang.StringBuilder
dup
ldc "Cannot resolve source "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.net.URL
StackMap stack:
new java.io.File
dup
aload 5
invokevirtual java.net.URL.toURI:()Ljava/net/URI;
invokespecial java.io.File.<init>:(Ljava/net/URI;)V
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
astore 6
start local 6 4: aload 0
aload 1
aload 6
aload 3
aload 4
invokestatic io.vertx.codetrans.ConvertingProcessor.convertFromFiles:(Ljava/lang/ClassLoader;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
areturn
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 5 0 loader Ljava/lang/ClassLoader;
0 5 1 langs Ljava/util/List<Lio/vertx/codetrans/Lang;>;
0 5 2 source Ljava/lang/String;
0 5 3 fqn Ljava/lang/String;
0 5 4 method Ljava/lang/String;
1 5 5 url Ljava/net/URL;
4 5 6 file Ljava/lang/String;
Exceptions:
throws java.lang.Exception
Signature: (Ljava/lang/ClassLoader;Ljava/util/List<Lio/vertx/codetrans/Lang;>;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map<Lio/vertx/codetrans/Lang;Lio/vertx/codetrans/Result;>;
MethodParameters:
Name Flags
loader
langs
source
fqn
method
public static java.util.Map<io.vertx.codetrans.Lang, io.vertx.codetrans.Result> convertFromFiles(java.lang.ClassLoader, java.util.List<io.vertx.codetrans.Lang>, java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/ClassLoader;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=15, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new javax.tools.DiagnosticCollector
dup
invokespecial javax.tools.DiagnosticCollector.<init>:()V
astore 5
start local 5 1: getstatic io.vertx.codetrans.ConvertingProcessor.javac:Ljavax/tools/JavaCompiler;
aload 5
getstatic io.vertx.codetrans.ConvertingProcessor.locale:Ljava/util/Locale;
getstatic io.vertx.codetrans.ConvertingProcessor.charset:Ljava/nio/charset/Charset;
invokeinterface javax.tools.JavaCompiler.getStandardFileManager:(Ljavax/tools/DiagnosticListener;Ljava/util/Locale;Ljava/nio/charset/Charset;)Ljavax/tools/StandardJavaFileManager;
astore 6
start local 6 2: aload 6
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 2
aastore
invokeinterface javax.tools.StandardJavaFileManager.getJavaFileObjects:([Ljava/lang/String;)Ljava/lang/Iterable;
astore 7
start local 7 3: new java.io.StringWriter
dup
invokespecial java.io.StringWriter.<init>:()V
astore 8
start local 8 4: getstatic io.vertx.codetrans.ConvertingProcessor.javac:Ljavax/tools/JavaCompiler;
5: aload 8
6: aload 6
7: aload 5
8: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
9: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
10: aload 7
11: invokeinterface javax.tools.JavaCompiler.getTask:(Ljava/io/Writer;Ljavax/tools/JavaFileManager;Ljavax/tools/DiagnosticListener;Ljava/lang/Iterable;Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljavax/tools/JavaCompiler$CompilationTask;
astore 9
start local 9 12: aload 9
getstatic io.vertx.codetrans.ConvertingProcessor.locale:Ljava/util/Locale;
invokeinterface javax.tools.JavaCompiler$CompilationTask.setLocale:(Ljava/util/Locale;)V
13: new io.vertx.codetrans.ConvertingProcessor
dup
aload 1
aload 3
aload 4
invokespecial io.vertx.codetrans.ConvertingProcessor.<init>:(Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)V
astore 10
start local 10 14: aload 9
aload 10
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
invokeinterface javax.tools.JavaCompiler$CompilationTask.setProcessors:(Ljava/lang/Iterable;)V
15: aload 9
invokeinterface javax.tools.JavaCompiler$CompilationTask.call:()Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 17
16: aload 10
invokevirtual io.vertx.codetrans.ConvertingProcessor.getResults:()Ljava/util/Map;
areturn
17: StackMap locals: java.lang.ClassLoader java.util.List java.lang.String java.lang.String java.lang.String javax.tools.DiagnosticCollector javax.tools.StandardJavaFileManager java.lang.Iterable java.io.StringWriter javax.tools.JavaCompiler$CompilationTask io.vertx.codetrans.ConvertingProcessor
StackMap stack:
new java.io.StringWriter
dup
invokespecial java.io.StringWriter.<init>:()V
astore 11
start local 11 18: new java.io.PrintWriter
dup
aload 11
invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
astore 12
start local 12 19: aload 12
ldc "Compilation of "
invokevirtual java.io.PrintWriter.append:(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
aload 2
invokevirtual java.io.PrintWriter.append:(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
ldc " failed:"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
20: aload 5
invokevirtual javax.tools.DiagnosticCollector.getDiagnostics:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 14
goto 23
StackMap locals: java.lang.ClassLoader java.util.List java.lang.String java.lang.String java.lang.String javax.tools.DiagnosticCollector javax.tools.StandardJavaFileManager java.lang.Iterable java.io.StringWriter javax.tools.JavaCompiler$CompilationTask io.vertx.codetrans.ConvertingProcessor java.io.StringWriter java.io.PrintWriter top java.util.Iterator
StackMap stack:
21: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.tools.Diagnostic
astore 13
start local 13 22: aload 12
aload 13
getstatic io.vertx.codetrans.ConvertingProcessor.locale:Ljava/util/Locale;
invokeinterface javax.tools.Diagnostic.getMessage:(Ljava/util/Locale;)Ljava/lang/String;
invokevirtual java.io.PrintWriter.append:(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
pop
end local 13 23: StackMap locals:
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
24: aload 12
ldc "console:"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
25: aload 12
aload 8
invokevirtual java.io.StringWriter.getBuffer:()Ljava/lang/StringBuffer;
invokevirtual java.io.PrintWriter.append:(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
pop
26: new java.lang.Exception
dup
aload 11
invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
athrow
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 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 27 0 loader Ljava/lang/ClassLoader;
0 27 1 lang Ljava/util/List<Lio/vertx/codetrans/Lang;>;
0 27 2 file Ljava/lang/String;
0 27 3 fqn Ljava/lang/String;
0 27 4 method Ljava/lang/String;
1 27 5 diagnostics Ljavax/tools/DiagnosticCollector<Ljavax/tools/JavaFileObject;>;
2 27 6 manager Ljavax/tools/StandardJavaFileManager;
3 27 7 fileObjects Ljava/lang/Iterable<+Ljavax/tools/JavaFileObject;>;
4 27 8 out Ljava/io/StringWriter;
12 27 9 task Ljavax/tools/JavaCompiler$CompilationTask;
14 27 10 processor Lio/vertx/codetrans/ConvertingProcessor;
18 27 11 message Ljava/io/StringWriter;
19 27 12 writer Ljava/io/PrintWriter;
22 23 13 diagnostic Ljavax/tools/Diagnostic<+Ljavax/tools/JavaFileObject;>;
Exceptions:
throws java.lang.Exception
Signature: (Ljava/lang/ClassLoader;Ljava/util/List<Lio/vertx/codetrans/Lang;>;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map<Lio/vertx/codetrans/Lang;Lio/vertx/codetrans/Result;>;
MethodParameters:
Name Flags
loader
lang
file
fqn
method
public void <init>(java.util.List<io.vertx.codetrans.Lang>, java.lang.String, java.lang.String);
descriptor: (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial javax.annotation.processing.AbstractProcessor.<init>:()V
1: aload 0
new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
putfield io.vertx.codetrans.ConvertingProcessor.results:Ljava/util/Map;
2: aload 0
aload 1
putfield io.vertx.codetrans.ConvertingProcessor.langs:Ljava/util/List;
3: aload 0
aload 2
putfield io.vertx.codetrans.ConvertingProcessor.fqn:Ljava/lang/String;
4: aload 0
aload 3
putfield io.vertx.codetrans.ConvertingProcessor.method:Ljava/lang/String;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/vertx/codetrans/ConvertingProcessor;
0 6 1 langs Ljava/util/List<Lio/vertx/codetrans/Lang;>;
0 6 2 fqn Ljava/lang/String;
0 6 3 method Ljava/lang/String;
Signature: (Ljava/util/List<Lio/vertx/codetrans/Lang;>;Ljava/lang/String;Ljava/lang/String;)V
MethodParameters:
Name Flags
langs
fqn
method
public java.util.Map<io.vertx.codetrans.Lang, io.vertx.codetrans.Result> getResults();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.codetrans.ConvertingProcessor.results:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/codetrans/ConvertingProcessor;
Signature: ()Ljava/util/Map<Lio/vertx/codetrans/Lang;Lio/vertx/codetrans/Result;>;
public java.util.Set<java.lang.String> getSupportedAnnotationTypes();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc Lio/vertx/codetrans/annotations/CodeTranslate;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/codetrans/ConvertingProcessor;
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
public synchronized void init(javax.annotation.processing.ProcessingEnvironment);
descriptor: (Ljavax/annotation/processing/ProcessingEnvironment;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial javax.annotation.processing.AbstractProcessor.init:(Ljavax/annotation/processing/ProcessingEnvironment;)V
1: aload 0
new io.vertx.codetrans.CodeTranslator
dup
aload 1
invokespecial io.vertx.codetrans.CodeTranslator.<init>:(Ljavax/annotation/processing/ProcessingEnvironment;)V
putfield io.vertx.codetrans.ConvertingProcessor.translator:Lio/vertx/codetrans/CodeTranslator;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/codetrans/ConvertingProcessor;
0 3 1 processingEnv Ljavax/annotation/processing/ProcessingEnvironment;
MethodParameters:
Name Flags
processingEnv
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=5, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ldc Lio/vertx/codetrans/annotations/CodeTranslate;
invokeinterface javax.annotation.processing.RoundEnvironment.getElementsAnnotatedWith:(Ljava/lang/Class;)Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 14
StackMap locals: io.vertx.codetrans.ConvertingProcessor java.util.Set javax.annotation.processing.RoundEnvironment top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.Element
astore 3
start local 3 2: aload 3
checkcast javax.lang.model.element.ExecutableElement
astore 5
start local 5 3: aload 5
invokeinterface javax.lang.model.element.ExecutableElement.getEnclosingElement:()Ljavax/lang/model/element/Element;
checkcast javax.lang.model.element.TypeElement
astore 6
start local 6 4: aload 6
invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
aload 0
getfield io.vertx.codetrans.ConvertingProcessor.fqn:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
aload 5
invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
aload 0
getfield io.vertx.codetrans.ConvertingProcessor.method:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
5: aload 0
getfield io.vertx.codetrans.ConvertingProcessor.langs:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 13
StackMap locals: io.vertx.codetrans.ConvertingProcessor java.util.Set javax.annotation.processing.RoundEnvironment javax.lang.model.element.Element java.util.Iterator javax.lang.model.element.ExecutableElement javax.lang.model.element.TypeElement top java.util.Iterator
StackMap stack:
6: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.vertx.codetrans.Lang
astore 7
start local 7 7: aload 0
getfield io.vertx.codetrans.ConvertingProcessor.translator:Lio/vertx/codetrans/CodeTranslator;
aload 5
iconst_0
aload 7
getstatic io.vertx.codetrans.RenderMode.SNIPPET:Lio/vertx/codetrans/RenderMode;
invokevirtual io.vertx.codetrans.CodeTranslator.translate:(Ljavax/lang/model/element/ExecutableElement;ZLio/vertx/codetrans/Lang;Lio/vertx/codetrans/RenderMode;)Ljava/lang/String;
astore 10
start local 10 8: new io.vertx.codetrans.Result$Source
dup
aload 10
invokespecial io.vertx.codetrans.Result$Source.<init>:(Ljava/lang/String;)V
astore 9
end local 10 start local 9 9: goto 12
end local 9 StackMap locals: io.vertx.codetrans.ConvertingProcessor java.util.Set javax.annotation.processing.RoundEnvironment javax.lang.model.element.Element java.util.Iterator javax.lang.model.element.ExecutableElement javax.lang.model.element.TypeElement io.vertx.codetrans.Lang java.util.Iterator
StackMap stack: java.lang.Exception
10: astore 10
start local 10 11: new io.vertx.codetrans.Result$Failure
dup
aload 10
invokespecial io.vertx.codetrans.Result$Failure.<init>:(Ljava/lang/Throwable;)V
astore 9
end local 10 start local 9 12: StackMap locals: io.vertx.codetrans.Result
StackMap stack:
aload 0
getfield io.vertx.codetrans.ConvertingProcessor.results:Ljava/util/Map;
aload 7
aload 9
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 9 end local 7 13: StackMap locals: io.vertx.codetrans.ConvertingProcessor java.util.Set javax.annotation.processing.RoundEnvironment javax.lang.model.element.Element java.util.Iterator javax.lang.model.element.ExecutableElement javax.lang.model.element.TypeElement top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
end local 6 end local 5 end local 3 14: StackMap locals: io.vertx.codetrans.ConvertingProcessor java.util.Set javax.annotation.processing.RoundEnvironment top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
15: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lio/vertx/codetrans/ConvertingProcessor;
0 16 1 annotations Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;
0 16 2 roundEnv Ljavax/annotation/processing/RoundEnvironment;
2 14 3 annotatedElt Ljavax/lang/model/element/Element;
3 14 5 methodElt Ljavax/lang/model/element/ExecutableElement;
4 14 6 typeElt Ljavax/lang/model/element/TypeElement;
7 13 7 lang Lio/vertx/codetrans/Lang;
9 10 9 result Lio/vertx/codetrans/Result;
12 13 9 result Lio/vertx/codetrans/Result;
8 9 10 translation Ljava/lang/String;
11 12 10 e Ljava/lang/Exception;
Exception table:
from to target type
7 9 10 Class java.lang.Exception
Signature: (Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;Ljavax/annotation/processing/RoundEnvironment;)Z
MethodParameters:
Name Flags
annotations
roundEnv
}
SourceFile: "ConvertingProcessor.java"
InnerClasses:
public Failure = io.vertx.codetrans.Result$Failure of io.vertx.codetrans.Result
public Source = io.vertx.codetrans.Result$Source of io.vertx.codetrans.Result
public abstract CompilationTask = javax.tools.JavaCompiler$CompilationTask of javax.tools.JavaCompiler