public final class org.apache.lucene.analysis.util.AnalysisSPILoader<S extends org.apache.lucene.analysis.util.AbstractAnalysisFactory>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.apache.lucene.analysis.util.AnalysisSPILoader
super_class: java.lang.Object
{
private volatile java.util.Map<java.lang.String, java.lang.Class<? extends S>> services;
descriptor: Ljava/util/Map;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Class<+TS;>;>;
private final java.lang.Class<S> clazz;
descriptor: Ljava/lang/Class;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Class<TS;>;
private final java.lang.String[] suffixes;
descriptor: [Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.lang.Class<S>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 1
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
invokespecial org.apache.lucene.analysis.util.AnalysisSPILoader.<init>:(Ljava/lang/Class;[Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/lucene/analysis/util/AnalysisSPILoader<TS;>;
0 2 1 clazz Ljava/lang/Class<TS;>;
Signature: (Ljava/lang/Class<TS;>;)V
MethodParameters:
Name Flags
clazz
public void <init>(java.lang.Class<S>, java.lang.ClassLoader);
descriptor: (Ljava/lang/Class;Ljava/lang/ClassLoader;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 1
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
aload 2
invokespecial org.apache.lucene.analysis.util.AnalysisSPILoader.<init>:(Ljava/lang/Class;[Ljava/lang/String;Ljava/lang/ClassLoader;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/lucene/analysis/util/AnalysisSPILoader<TS;>;
0 2 1 clazz Ljava/lang/Class<TS;>;
0 2 2 loader Ljava/lang/ClassLoader;
Signature: (Ljava/lang/Class<TS;>;Ljava/lang/ClassLoader;)V
MethodParameters:
Name Flags
clazz
loader
public void <init>(java.lang.Class<S>, java.lang.String[]);
descriptor: (Ljava/lang/Class;[Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
aconst_null
invokespecial org.apache.lucene.analysis.util.AnalysisSPILoader.<init>:(Ljava/lang/Class;[Ljava/lang/String;Ljava/lang/ClassLoader;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/lucene/analysis/util/AnalysisSPILoader<TS;>;
0 2 1 clazz Ljava/lang/Class<TS;>;
0 2 2 suffixes [Ljava/lang/String;
Signature: (Ljava/lang/Class<TS;>;[Ljava/lang/String;)V
MethodParameters:
Name Flags
clazz
suffixes
public void <init>(java.lang.Class<S>, java.lang.String[], java.lang.ClassLoader);
descriptor: (Ljava/lang/Class;[Ljava/lang/String;Ljava/lang/ClassLoader;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
putfield org.apache.lucene.analysis.util.AnalysisSPILoader.services:Ljava/util/Map;
2: aload 0
aload 1
putfield org.apache.lucene.analysis.util.AnalysisSPILoader.clazz:Ljava/lang/Class;
3: aload 0
aload 2
putfield org.apache.lucene.analysis.util.AnalysisSPILoader.suffixes:[Ljava/lang/String;
4: aload 1
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 4
start local 4 5: aload 3
ifnonnull 7
6: aload 4
astore 3
7: StackMap locals: org.apache.lucene.analysis.util.AnalysisSPILoader java.lang.Class java.lang.String[] java.lang.ClassLoader java.lang.ClassLoader
StackMap stack:
aload 4
ifnull 9
aload 4
aload 3
invokestatic org.apache.lucene.util.SPIClassIterator.isParentClassLoader:(Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)Z
ifne 9
8: aload 0
aload 4
invokevirtual org.apache.lucene.analysis.util.AnalysisSPILoader.reload:(Ljava/lang/ClassLoader;)V
9: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual org.apache.lucene.analysis.util.AnalysisSPILoader.reload:(Ljava/lang/ClassLoader;)V
10: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/lucene/analysis/util/AnalysisSPILoader<TS;>;
0 11 1 clazz Ljava/lang/Class<TS;>;
0 11 2 suffixes [Ljava/lang/String;
0 11 3 classloader Ljava/lang/ClassLoader;
5 11 4 clazzClassloader Ljava/lang/ClassLoader;
Signature: (Ljava/lang/Class<TS;>;[Ljava/lang/String;Ljava/lang/ClassLoader;)V
MethodParameters:
Name Flags
clazz
suffixes
classloader
public synchronized void reload(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=11, args_size=2
start local 0 start local 1 0: aload 1
ldc "classloader"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: new java.util.LinkedHashMap
dup
aload 0
getfield org.apache.lucene.analysis.util.AnalysisSPILoader.services:Ljava/util/Map;
invokespecial java.util.LinkedHashMap.<init>:(Ljava/util/Map;)V
2: astore 2
start local 2 3: aload 0
getfield org.apache.lucene.analysis.util.AnalysisSPILoader.clazz:Ljava/lang/Class;
aload 1
invokestatic org.apache.lucene.util.SPIClassIterator.get:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Lorg/apache/lucene/util/SPIClassIterator;
astore 3
start local 3 4: goto 21
5: StackMap locals: java.util.LinkedHashMap org.apache.lucene.util.SPIClassIterator
StackMap stack:
aload 3
invokevirtual org.apache.lucene.util.SPIClassIterator.next:()Ljava/lang/Class;
astore 4
start local 4 6: aload 4
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
astore 5
start local 5 7: aconst_null
astore 6
start local 6 8: aload 0
getfield org.apache.lucene.analysis.util.AnalysisSPILoader.suffixes:[Ljava/lang/String;
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 14
StackMap locals: org.apache.lucene.analysis.util.AnalysisSPILoader java.lang.ClassLoader java.util.LinkedHashMap org.apache.lucene.util.SPIClassIterator java.lang.Class java.lang.String java.lang.String top int int java.lang.String[]
StackMap stack:
9: aload 10
iload 8
aaload
astore 7
start local 7 10: aload 5
aload 7
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 13
11: aload 5
iconst_0
aload 5
invokevirtual java.lang.String.length:()I
aload 7
invokevirtual java.lang.String.length:()I
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
astore 6
12: goto 15
end local 7 13: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
14: iload 8
iload 9
if_icmplt 9
15: StackMap locals: org.apache.lucene.analysis.util.AnalysisSPILoader java.lang.ClassLoader java.util.LinkedHashMap org.apache.lucene.util.SPIClassIterator java.lang.Class java.lang.String java.lang.String
StackMap stack:
aload 6
ifnonnull 19
16: new java.util.ServiceConfigurationError
dup
new java.lang.StringBuilder
dup
ldc "The class name "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: ldc " has wrong suffix, allowed are: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.lucene.analysis.util.AnalysisSPILoader.suffixes:[Ljava/lang/String;
invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: invokespecial java.util.ServiceConfigurationError.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
aload 2
aload 6
invokevirtual java.util.LinkedHashMap.containsKey:(Ljava/lang/Object;)Z
ifne 21
20: aload 2
aload 6
aload 4
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 end local 5 end local 4 21: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.apache.lucene.util.SPIClassIterator.hasNext:()Z
ifne 5
22: aload 0
aload 2
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putfield org.apache.lucene.analysis.util.AnalysisSPILoader.services:Ljava/util/Map;
23: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/apache/lucene/analysis/util/AnalysisSPILoader<TS;>;
0 24 1 classloader Ljava/lang/ClassLoader;
3 24 2 services Ljava/util/LinkedHashMap<Ljava/lang/String;Ljava/lang/Class<+TS;>;>;
4 24 3 loader Lorg/apache/lucene/util/SPIClassIterator<TS;>;
6 21 4 service Ljava/lang/Class<+TS;>;
7 21 5 clazzName Ljava/lang/String;
8 21 6 name Ljava/lang/String;
10 13 7 suffix Ljava/lang/String;
MethodParameters:
Name Flags
classloader
public S newInstance(java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
descriptor: (Ljava/lang/String;Ljava/util/Map;)Lorg/apache/lucene/analysis/util/AbstractAnalysisFactory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.apache.lucene.analysis.util.AnalysisSPILoader.lookupClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 3
start local 3 1: aload 3
aload 2
invokestatic org.apache.lucene.analysis.util.AnalysisSPILoader.newFactoryClassInstance:(Ljava/lang/Class;Ljava/util/Map;)Lorg/apache/lucene/analysis/util/AbstractAnalysisFactory;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/lucene/analysis/util/AnalysisSPILoader<TS;>;
0 2 1 name Ljava/lang/String;
0 2 2 args Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
1 2 3 service Ljava/lang/Class<+TS;>;
Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)TS;
MethodParameters:
Name Flags
name
args
public java.lang.Class<? extends S> lookupClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.lucene.analysis.util.AnalysisSPILoader.services:Ljava/util/Map;
aload 1
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Class
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
areturn
3: StackMap locals: java.lang.Class
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "A SPI class of type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.apache.lucene.analysis.util.AnalysisSPILoader.clazz:Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " with name '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' does not exist. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: ldc "You need to add the corresponding JAR file supporting this SPI to your classpath. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: ldc "The current classpath supports the following names: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.apache.lucene.analysis.util.AnalysisSPILoader.availableServices:()Ljava/util/Set;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/lucene/analysis/util/AnalysisSPILoader<TS;>;
0 7 1 name Ljava/lang/String;
1 7 2 service Ljava/lang/Class<+TS;>;
Signature: (Ljava/lang/String;)Ljava/lang/Class<+TS;>;
MethodParameters:
Name Flags
name
public java.util.Set<java.lang.String> availableServices();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.lucene.analysis.util.AnalysisSPILoader.services:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/lucene/analysis/util/AnalysisSPILoader<TS;>;
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
public static <T extends org.apache.lucene.analysis.util.AbstractAnalysisFactory> T newFactoryClassInstance(java.lang.Class<T>, java.util.Map<java.lang.String, java.lang.String>);
descriptor: (Ljava/lang/Class;Ljava/util/Map;)Lorg/apache/lucene/analysis/util/AbstractAnalysisFactory;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/util/Map;
aastore
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.lucene.analysis.util.AbstractAnalysisFactory
1: areturn
2: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 2
start local 2 3: aload 2
invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
astore 3
start local 3 4: aload 3
instanceof java.lang.RuntimeException
ifeq 6
5: aload 3
checkcast java.lang.RuntimeException
athrow
6: StackMap locals: java.lang.reflect.InvocationTargetException java.lang.Throwable
StackMap stack:
aload 3
instanceof java.lang.Error
ifeq 8
7: aload 3
checkcast java.lang.Error
athrow
8: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Unexpected checked exception while calling constructor of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 9: StackMap locals: java.lang.Class java.util.Map
StackMap stack: java.lang.ReflectiveOperationException
astore 2
start local 2 10: new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
ldc "Factory "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " cannot be instantiated. This is likely due to missing Map<String,String> constructor."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 clazz Ljava/lang/Class<TT;>;
0 11 1 args Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
3 9 2 ite Ljava/lang/reflect/InvocationTargetException;
4 9 3 cause Ljava/lang/Throwable;
10 11 2 e Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
0 1 2 Class java.lang.reflect.InvocationTargetException
0 1 9 Class java.lang.ReflectiveOperationException
Signature: <T:Lorg/apache/lucene/analysis/util/AbstractAnalysisFactory;>(Ljava/lang/Class<TT;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)TT;
MethodParameters:
Name Flags
clazz
args
}
Signature: <S:Lorg/apache/lucene/analysis/util/AbstractAnalysisFactory;>Ljava/lang/Object;
SourceFile: "AnalysisSPILoader.java"