public class io.vertx.codegen.Compiler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.vertx.codegen.Compiler
super_class: java.lang.Object
{
private javax.annotation.processing.Processor processor;
descriptor: Ljavax/annotation/processing/Processor;
flags: (0x0002) ACC_PRIVATE
private javax.tools.DiagnosticListener<javax.tools.JavaFileObject> diagnosticListener;
descriptor: Ljavax/tools/DiagnosticListener;
flags: (0x0002) ACC_PRIVATE
Signature: Ljavax/tools/DiagnosticListener<Ljavax/tools/JavaFileObject;>;
private java.util.List<java.lang.String> options;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Ljava/lang/String;>;
private java.io.File classOutput;
descriptor: Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
private java.io.File sourceOutput;
descriptor: Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
private static java.io.File createTempDir();
descriptor: ()Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: ldc "codegen"
iconst_0
anewarray java.nio.file.attribute.FileAttribute
invokestatic java.nio.file.Files.createTempDirectory:(Ljava/lang/String;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
astore 0
start local 0 1: aload 0
invokevirtual java.io.File.deleteOnExit:()V
2: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 dir Ljava/io/File;
Exceptions:
throws java.io.IOException
public void <init>(javax.annotation.processing.Processor);
descriptor: (Ljavax/annotation/processing/Processor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
new javax.tools.DiagnosticCollector
dup
invokespecial javax.tools.DiagnosticCollector.<init>:()V
invokespecial io.vertx.codegen.Compiler.<init>:(Ljavax/annotation/processing/Processor;Ljavax/tools/DiagnosticListener;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/codegen/Compiler;
0 2 1 processor Ljavax/annotation/processing/Processor;
MethodParameters:
Name Flags
processor
public void <init>(javax.annotation.processing.Processor, javax.tools.DiagnosticListener<javax.tools.JavaFileObject>);
descriptor: (Ljavax/annotation/processing/Processor;Ljavax/tools/DiagnosticListener;)V
flags: (0x0001) ACC_PUBLIC
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.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield io.vertx.codegen.Compiler.options:Ljava/util/List;
2: aload 0
aload 1
putfield io.vertx.codegen.Compiler.processor:Ljavax/annotation/processing/Processor;
3: aload 0
aload 2
putfield io.vertx.codegen.Compiler.diagnosticListener:Ljavax/tools/DiagnosticListener;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/vertx/codegen/Compiler;
0 5 1 processor Ljavax/annotation/processing/Processor;
0 5 2 diagnosticListener Ljavax/tools/DiagnosticListener<Ljavax/tools/JavaFileObject;>;
Signature: (Ljavax/annotation/processing/Processor;Ljavax/tools/DiagnosticListener<Ljavax/tools/JavaFileObject;>;)V
MethodParameters:
Name Flags
processor
diagnosticListener
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokespecial io.vertx.codegen.Compiler.<init>:(Ljavax/annotation/processing/Processor;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/codegen/Compiler;
public javax.annotation.processing.Processor getProcessor();
descriptor: ()Ljavax/annotation/processing/Processor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.codegen.Compiler.processor:Ljavax/annotation/processing/Processor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/codegen/Compiler;
public io.vertx.codegen.Compiler addOption(java.lang.String);
descriptor: (Ljava/lang/String;)Lio/vertx/codegen/Compiler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.codegen.Compiler.options:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/codegen/Compiler;
0 2 1 option Ljava/lang/String;
MethodParameters:
Name Flags
option
public java.io.File getClassOutput();
descriptor: ()Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.codegen.Compiler.classOutput:Ljava/io/File;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/codegen/Compiler;
public void setClassOutput(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield io.vertx.codegen.Compiler.classOutput:Ljava/io/File;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/codegen/Compiler;
0 2 1 classOutput Ljava/io/File;
MethodParameters:
Name Flags
classOutput
public java.io.File getSourceOutput();
descriptor: ()Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.codegen.Compiler.sourceOutput:Ljava/io/File;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/codegen/Compiler;
public void setSourceOutput(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield io.vertx.codegen.Compiler.sourceOutput:Ljava/io/File;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/codegen/Compiler;
0 2 1 sourceOutput Ljava/io/File;
MethodParameters:
Name Flags
sourceOutput
public boolean compile(java.lang.Class[]);
descriptor: ([Ljava/lang/Class;)Z
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual io.vertx.codegen.Compiler.compile:(Ljava/util/List;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/codegen/Compiler;
0 1 1 types [Ljava/lang/Class;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
types
public boolean compile(java.util.List<java.lang.Class>);
descriptor: (Ljava/util/List;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=16, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 32
StackMap locals: io.vertx.codegen.Compiler java.util.List java.util.ArrayList top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Class
astore 3
start local 3 3: aload 3
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
astore 5
start local 5 4: new java.lang.StringBuilder
dup
aload 5
ldc "."
ldc "/"
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".java"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 6
start local 6 5: aload 3
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 7
start local 7 6: aload 7
aload 6
invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
astore 8
start local 8 7: aload 8
ifnonnull 9
8: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Can't find source on classpath: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: io.vertx.codegen.Compiler java.util.List java.util.ArrayList java.lang.Class java.util.Iterator java.lang.String java.lang.String java.lang.ClassLoader java.io.InputStream
StackMap stack:
aconst_null
astore 10
aconst_null
astore 11
10: new java.util.Scanner
dup
aload 8
ldc "UTF-8"
invokespecial java.util.Scanner.<init>:(Ljava/io/InputStream;Ljava/lang/String;)V
ldc "\\A"
invokevirtual java.util.Scanner.useDelimiter:(Ljava/lang/String;)Ljava/util/Scanner;
astore 12
start local 12 11: aload 12
invokevirtual java.util.Scanner.next:()Ljava/lang/String;
astore 9
start local 9 12: aload 12
ifnull 18
aload 12
invokevirtual java.util.Scanner.close:()V
goto 18
end local 9 StackMap locals: io.vertx.codegen.Compiler java.util.List java.util.ArrayList java.lang.Class java.util.Iterator java.lang.String java.lang.String java.lang.ClassLoader java.io.InputStream top java.lang.Throwable java.lang.Throwable java.util.Scanner
StackMap stack: java.lang.Throwable
13: astore 10
aload 12
ifnull 14
aload 12
invokevirtual java.util.Scanner.close:()V
end local 12 StackMap locals:
StackMap stack:
14: aload 10
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 11
aload 10
ifnonnull 16
aload 11
astore 10
goto 17
StackMap locals:
StackMap stack:
16: aload 10
aload 11
if_acmpeq 17
aload 10
aload 11
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
17: aload 10
athrow
start local 9 18: StackMap locals: io.vertx.codegen.Compiler java.util.List java.util.ArrayList java.lang.Class java.util.Iterator java.lang.String java.lang.String java.lang.ClassLoader java.io.InputStream java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
ldc "java.io.tmpdir"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 10
start local 10 19: new java.io.File
dup
aload 10
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 11
start local 11 20: aload 11
invokevirtual java.io.File.getParentFile:()Ljava/io/File;
astore 12
start local 12 21: aload 12
invokevirtual java.io.File.mkdirs:()Z
pop
22: aconst_null
astore 13
aconst_null
astore 14
23: new java.io.PrintStream
dup
new java.io.FileOutputStream
dup
aload 10
invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;)V
astore 15
start local 15 24: aload 15
aload 9
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
25: aload 15
ifnull 31
aload 15
invokevirtual java.io.PrintStream.close:()V
goto 31
StackMap locals: io.vertx.codegen.Compiler java.util.List java.util.ArrayList java.lang.Class java.util.Iterator java.lang.String java.lang.String java.lang.ClassLoader java.io.InputStream java.lang.String java.lang.String java.io.File java.io.File java.lang.Throwable java.lang.Throwable java.io.PrintStream
StackMap stack: java.lang.Throwable
26: astore 13
aload 15
ifnull 27
aload 15
invokevirtual java.io.PrintStream.close:()V
end local 15 StackMap locals:
StackMap stack:
27: aload 13
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
28: astore 14
aload 13
ifnonnull 29
aload 14
astore 13
goto 30
StackMap locals:
StackMap stack:
29: aload 13
aload 14
if_acmpeq 30
aload 13
aload 14
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
30: aload 13
athrow
31: StackMap locals:
StackMap stack:
aload 2
aload 11
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
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 3 32: StackMap locals: io.vertx.codegen.Compiler java.util.List java.util.ArrayList top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
33: aload 0
aload 2
aload 2
invokevirtual java.util.ArrayList.size:()I
anewarray java.io.File
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.io.File[]
invokevirtual io.vertx.codegen.Compiler.compile:([Ljava/io/File;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lio/vertx/codegen/Compiler;
0 34 1 types Ljava/util/List<Ljava/lang/Class;>;
1 34 2 tmpFiles Ljava/util/ArrayList<Ljava/io/File;>;
3 32 3 type Ljava/lang/Class;
4 32 5 className Ljava/lang/String;
5 32 6 fileName Ljava/lang/String;
6 32 7 loader Ljava/lang/ClassLoader;
7 32 8 is Ljava/io/InputStream;
12 13 9 source Ljava/lang/String;
18 32 9 source Ljava/lang/String;
11 14 12 scanner Ljava/util/Scanner;
19 32 10 tmpFileName Ljava/lang/String;
20 32 11 f Ljava/io/File;
21 32 12 parent Ljava/io/File;
24 27 15 out Ljava/io/PrintStream;
Exception table:
from to target type
11 12 13 any
10 15 15 any
24 25 26 any
23 28 28 any
Exceptions:
throws java.lang.Exception
Signature: (Ljava/util/List<Ljava/lang/Class;>;)Z
MethodParameters:
Name Flags
types
public boolean compile(java.io.File[]);
descriptor: ([Ljava/io/File;)Z
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=7, locals=9, args_size=2
start local 0 start local 1 0: invokestatic javax.tools.ToolProvider.getSystemJavaCompiler:()Ljavax/tools/JavaCompiler;
astore 2
start local 2 1: aload 2
aload 0
getfield io.vertx.codegen.Compiler.diagnosticListener:Ljavax/tools/DiagnosticListener;
aconst_null
aconst_null
invokeinterface javax.tools.JavaCompiler.getStandardFileManager:(Ljavax/tools/DiagnosticListener;Ljava/util/Locale;Ljava/nio/charset/Charset;)Ljavax/tools/StandardJavaFileManager;
astore 3
start local 3 2: aload 0
getfield io.vertx.codegen.Compiler.classOutput:Ljava/io/File;
ifnonnull 4
3: aload 0
invokestatic io.vertx.codegen.Compiler.createTempDir:()Ljava/io/File;
putfield io.vertx.codegen.Compiler.classOutput:Ljava/io/File;
4: StackMap locals: javax.tools.JavaCompiler javax.tools.StandardJavaFileManager
StackMap stack:
aload 0
getfield io.vertx.codegen.Compiler.sourceOutput:Ljava/io/File;
ifnonnull 6
5: aload 0
invokestatic io.vertx.codegen.Compiler.createTempDir:()Ljava/io/File;
putfield io.vertx.codegen.Compiler.sourceOutput:Ljava/io/File;
6: StackMap locals:
StackMap stack:
aload 3
getstatic javax.tools.StandardLocation.CLASS_OUTPUT:Ljavax/tools/StandardLocation;
aload 0
getfield io.vertx.codegen.Compiler.classOutput:Ljava/io/File;
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
invokeinterface javax.tools.StandardJavaFileManager.setLocation:(Ljavax/tools/JavaFileManager$Location;Ljava/lang/Iterable;)V
7: aload 3
getstatic javax.tools.StandardLocation.SOURCE_OUTPUT:Ljavax/tools/StandardLocation;
aload 0
getfield io.vertx.codegen.Compiler.sourceOutput:Ljava/io/File;
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
invokeinterface javax.tools.StandardJavaFileManager.setLocation:(Ljavax/tools/JavaFileManager$Location;Ljava/lang/Iterable;)V
8: aload 3
aload 1
invokeinterface javax.tools.StandardJavaFileManager.getJavaFileObjects:([Ljava/io/File;)Ljava/lang/Iterable;
astore 4
start local 4 9: new io.vertx.codegen.Compiler$NullWriter
dup
invokespecial io.vertx.codegen.Compiler$NullWriter.<init>:()V
astore 5
start local 5 10: aload 2
aload 5
aload 3
aload 0
getfield io.vertx.codegen.Compiler.diagnosticListener:Ljavax/tools/DiagnosticListener;
aload 0
getfield io.vertx.codegen.Compiler.options:Ljava/util/List;
aconst_null
aload 4
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 6
start local 6 11: aload 0
getfield io.vertx.codegen.Compiler.processor:Ljavax/annotation/processing/Processor;
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
astore 7
start local 7 12: aload 6
aload 7
invokeinterface javax.tools.JavaCompiler$CompilationTask.setProcessors:(Ljava/lang/Iterable;)V
13: aload 6
invokeinterface javax.tools.JavaCompiler$CompilationTask.call:()Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
14: ireturn
15: StackMap locals: io.vertx.codegen.Compiler java.io.File[] javax.tools.JavaCompiler javax.tools.StandardJavaFileManager java.lang.Iterable java.io.Writer javax.tools.JavaCompiler$CompilationTask java.util.List
StackMap stack: java.lang.RuntimeException
astore 8
start local 8 16: aload 8
invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
ifnull 18
aload 8
invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
instanceof java.lang.RuntimeException
ifeq 18
17: aload 8
invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
checkcast java.lang.RuntimeException
athrow
18: StackMap locals: java.lang.RuntimeException
StackMap stack:
aload 8
athrow
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 19 0 this Lio/vertx/codegen/Compiler;
0 19 1 sourceFiles [Ljava/io/File;
1 19 2 compiler Ljavax/tools/JavaCompiler;
2 19 3 fm Ljavax/tools/StandardJavaFileManager;
9 19 4 fileObjects Ljava/lang/Iterable<+Ljavax/tools/JavaFileObject;>;
10 19 5 out Ljava/io/Writer;
11 19 6 task Ljavax/tools/JavaCompiler$CompilationTask;
12 19 7 processors Ljava/util/List<Ljavax/annotation/processing/Processor;>;
16 19 8 e Ljava/lang/RuntimeException;
Exception table:
from to target type
13 14 15 Class java.lang.RuntimeException
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
sourceFiles
}
SourceFile: "Compiler.java"
NestMembers:
io.vertx.codegen.Compiler$NullWriter
InnerClasses:
private NullWriter = io.vertx.codegen.Compiler$NullWriter of io.vertx.codegen.Compiler
public abstract CompilationTask = javax.tools.JavaCompiler$CompilationTask of javax.tools.JavaCompiler
public abstract Location = javax.tools.JavaFileManager$Location of javax.tools.JavaFileManager