final class com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader extends com.oracle.truffle.polyglot.LanguageCache$Loader
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader
super_class: com.oracle.truffle.polyglot.LanguageCache$Loader
{
static final com.oracle.truffle.polyglot.LanguageCache$Loader INSTANCE;
descriptor: Lcom/oracle/truffle/polyglot/LanguageCache$Loader;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader
dup
invokespecial com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader.<init>:()V
putstatic com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader.INSTANCE:Lcom/oracle/truffle/polyglot/LanguageCache$Loader;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.polyglot.LanguageCache$Loader.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/LanguageCache$Loader$ServicesLoader;
public void loadImpl(java.lang.ClassLoader, java.util.Collection<? super com.oracle.truffle.polyglot.LanguageCache>);
descriptor: (Ljava/lang/ClassLoader;Ljava/util/Collection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=17, locals=21, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader.exportTruffle:(Ljava/lang/ClassLoader;)V
1: ldc Lcom/oracle/truffle/api/TruffleLanguage$Provider;
aload 1
invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
astore 4
goto 45
StackMap locals: com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader java.lang.ClassLoader java.util.Collection top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.TruffleLanguage$Provider
astore 3
start local 3 3: aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc Lcom/oracle/truffle/api/TruffleLanguage$Registration;
invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.truffle.api.TruffleLanguage$Registration
astore 5
start local 5 4: aload 5
ifnonnull 8
5: getstatic java.lang.System.err:Ljava/io/PrintStream;
astore 6
start local 6 6: aload 6
new java.lang.StringBuilder
dup
ldc "Provider "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " is missing @Registration annotation."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: goto 45
end local 6 8: StackMap locals: com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader java.lang.ClassLoader java.util.Collection com.oracle.truffle.api.TruffleLanguage$Provider java.util.Iterator com.oracle.truffle.api.TruffleLanguage$Registration
StackMap stack:
aload 3
invokeinterface com.oracle.truffle.api.TruffleLanguage$Provider.getLanguageClassName:()Ljava/lang/String;
astore 6
start local 6 9: aload 5
invokeinterface com.oracle.truffle.api.TruffleLanguage$Registration.name:()Ljava/lang/String;
astore 7
start local 7 10: aload 5
invokeinterface com.oracle.truffle.api.TruffleLanguage$Registration.id:()Ljava/lang/String;
astore 8
start local 8 11: aload 8
ifnull 12
aload 8
invokevirtual java.lang.String.isEmpty:()Z
ifeq 13
12: StackMap locals: java.lang.String java.lang.String java.lang.String
StackMap stack:
aload 7
aload 6
invokestatic com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader.defaultId:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 8
13: StackMap locals:
StackMap stack:
aload 8
invokestatic com.oracle.truffle.polyglot.LanguageCache.getLanguageHomeImpl:(Ljava/lang/String;)Ljava/lang/String;
astore 9
start local 9 14: aload 9
ifnonnull 20
15: aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
new java.lang.StringBuilder
dup
aload 6
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 10
start local 10 16: aload 10
ifnull 20
17: aload 8
aload 10
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
invokestatic com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader.getLanguageHomeFromURLConnection:(Ljava/lang/String;Ljava/net/URLConnection;)Ljava/lang/String;
astore 9
18: goto 20
StackMap locals: com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader java.lang.ClassLoader java.util.Collection com.oracle.truffle.api.TruffleLanguage$Provider java.util.Iterator com.oracle.truffle.api.TruffleLanguage$Registration java.lang.String java.lang.String java.lang.String java.lang.String java.net.URL
StackMap stack: java.io.IOException
19: pop
end local 10 20: StackMap locals:
StackMap stack:
aload 5
invokeinterface com.oracle.truffle.api.TruffleLanguage$Registration.implementationName:()Ljava/lang/String;
astore 10
start local 10 21: aload 5
invokeinterface com.oracle.truffle.api.TruffleLanguage$Registration.version:()Ljava/lang/String;
astore 11
start local 11 22: new java.util.TreeSet
dup
invokespecial java.util.TreeSet.<init>:()V
astore 12
start local 12 23: aload 12
aload 5
invokeinterface com.oracle.truffle.api.TruffleLanguage$Registration.characterMimeTypes:()[Ljava/lang/String;
invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
pop
24: aload 12
invokevirtual java.util.TreeSet.isEmpty:()Z
ifeq 26
25: aload 12
aload 5
invokestatic com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader.getMimeTypesDepecated:(Lcom/oracle/truffle/api/TruffleLanguage$Registration;)[Ljava/lang/String;
invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
pop
26: StackMap locals: java.lang.String java.lang.String java.util.TreeSet
StackMap stack:
new java.util.TreeSet
dup
invokespecial java.util.TreeSet.<init>:()V
astore 13
start local 13 27: aload 13
aload 5
invokeinterface com.oracle.truffle.api.TruffleLanguage$Registration.byteMimeTypes:()[Ljava/lang/String;
invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
pop
28: aload 5
invokeinterface com.oracle.truffle.api.TruffleLanguage$Registration.defaultMimeType:()Ljava/lang/String;
astore 14
start local 14 29: aload 14
invokevirtual java.lang.String.isEmpty:()Z
ifeq 31
30: aconst_null
astore 14
31: StackMap locals: java.util.TreeSet java.lang.String
StackMap stack:
new java.util.TreeSet
dup
invokespecial java.util.TreeSet.<init>:()V
astore 15
start local 15 32: aload 15
aload 5
invokeinterface com.oracle.truffle.api.TruffleLanguage$Registration.dependentLanguages:()[Ljava/lang/String;
invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
pop
33: aload 5
invokeinterface com.oracle.truffle.api.TruffleLanguage$Registration.interactive:()Z
istore 16
start local 16 34: aload 5
invokeinterface com.oracle.truffle.api.TruffleLanguage$Registration.internal:()Z
istore 17
start local 17 35: new java.util.TreeSet
dup
invokespecial java.util.TreeSet.<init>:()V
astore 18
start local 18 36: aload 3
invokeinterface com.oracle.truffle.api.TruffleLanguage$Provider.getServicesClassNames:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 20
goto 39
StackMap locals: com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader java.lang.ClassLoader java.util.Collection com.oracle.truffle.api.TruffleLanguage$Provider java.util.Iterator com.oracle.truffle.api.TruffleLanguage$Registration java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.util.TreeSet java.util.TreeSet java.lang.String java.util.TreeSet int int java.util.Set top java.util.Iterator
StackMap stack:
37: aload 20
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 19
start local 19 38: aload 18
aload 19
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 19 39: StackMap locals:
StackMap stack:
aload 20
invokeinterface java.util.Iterator.hasNext:()Z
ifne 37
40: new com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection
dup
aload 3
aload 5
invokeinterface com.oracle.truffle.api.TruffleLanguage$Registration.contextPolicy:()Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
invokespecial com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.<init>:(Lcom/oracle/truffle/api/TruffleLanguage$Provider;Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;)V
astore 19
start local 19 41: aload 2
new com.oracle.truffle.polyglot.LanguageCache
dup
aload 8
aload 7
aload 10
aload 11
aload 6
aload 9
42: aload 12
aload 13
aload 14
aload 15
iload 16
iload 17
43: aload 18
aload 19
invokespecial com.oracle.truffle.polyglot.LanguageCache.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;Ljava/util/Set;ZZLjava/util/Set;Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;)V
44: invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 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 45: StackMap locals: com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader java.lang.ClassLoader java.util.Collection top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
46: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Lcom/oracle/truffle/polyglot/LanguageCache$Loader$ServicesLoader;
0 47 1 loader Ljava/lang/ClassLoader;
0 47 2 into Ljava/util/Collection<-Lcom/oracle/truffle/polyglot/LanguageCache;>;
3 45 3 provider Lcom/oracle/truffle/api/TruffleLanguage$Provider;
4 45 5 reg Lcom/oracle/truffle/api/TruffleLanguage$Registration;
6 8 6 out Ljava/io/PrintStream;
9 45 6 className Ljava/lang/String;
10 45 7 name Ljava/lang/String;
11 45 8 id Ljava/lang/String;
14 45 9 languageHome Ljava/lang/String;
16 20 10 url Ljava/net/URL;
21 45 10 implementationName Ljava/lang/String;
22 45 11 version Ljava/lang/String;
23 45 12 characterMimes Ljava/util/TreeSet<Ljava/lang/String;>;
27 45 13 byteMimeTypes Ljava/util/TreeSet<Ljava/lang/String;>;
29 45 14 defaultMime Ljava/lang/String;
32 45 15 dependentLanguages Ljava/util/TreeSet<Ljava/lang/String;>;
34 45 16 interactive Z
35 45 17 internal Z
36 45 18 servicesClassNames Ljava/util/Set<Ljava/lang/String;>;
38 39 19 service Ljava/lang/String;
41 45 19 reflection Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
Exception table:
from to target type
17 18 19 Class java.io.IOException
Signature: (Ljava/lang/ClassLoader;Ljava/util/Collection<-Lcom/oracle/truffle/polyglot/LanguageCache;>;)V
MethodParameters:
Name Flags
loader
into
private static java.lang.String[] getMimeTypesDepecated(com.oracle.truffle.api.TruffleLanguage$Registration);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Registration;)[Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface com.oracle.truffle.api.TruffleLanguage$Registration.mimeType:()[Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 reg Lcom/oracle/truffle/api/TruffleLanguage$Registration;
MethodParameters:
Name Flags
reg
}
SourceFile: "LanguageCache.java"
NestHost: com.oracle.truffle.polyglot.LanguageCache
InnerClasses:
public final ContextPolicy = com.oracle.truffle.api.TruffleLanguage$ContextPolicy of com.oracle.truffle.api.TruffleLanguage
public abstract Provider = com.oracle.truffle.api.TruffleLanguage$Provider of com.oracle.truffle.api.TruffleLanguage
public abstract Registration = com.oracle.truffle.api.TruffleLanguage$Registration of com.oracle.truffle.api.TruffleLanguage
private abstract LanguageReflection = com.oracle.truffle.polyglot.LanguageCache$LanguageReflection of com.oracle.truffle.polyglot.LanguageCache
private abstract Loader = com.oracle.truffle.polyglot.LanguageCache$Loader of com.oracle.truffle.polyglot.LanguageCache
private final ServicesLoader = com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader of com.oracle.truffle.polyglot.LanguageCache$Loader
private final ServiceLoaderLanguageReflection = com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection of com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader