public final class com.sun.beans.finder.MethodFinder extends com.sun.beans.finder.AbstractFinder<java.lang.reflect.Method>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.beans.finder.MethodFinder
super_class: com.sun.beans.finder.AbstractFinder
{
private static final com.sun.beans.util.Cache<com.sun.beans.finder.Signature, java.lang.reflect.Method> CACHE;
descriptor: Lcom/sun/beans/util/Cache;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lcom/sun/beans/util/Cache<Lcom/sun/beans/finder/Signature;Ljava/lang/reflect/Method;>;
private final java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: new com.sun.beans.finder.MethodFinder$1
dup
getstatic com.sun.beans.util.Cache$Kind.SOFT:Lcom/sun/beans/util/Cache$Kind;
getstatic com.sun.beans.util.Cache$Kind.SOFT:Lcom/sun/beans/util/Cache$Kind;
invokespecial com.sun.beans.finder.MethodFinder$1.<init>:(Lcom/sun/beans/util/Cache$Kind;Lcom/sun/beans/util/Cache$Kind;)V
putstatic com.sun.beans.finder.MethodFinder.CACHE:Lcom/sun/beans/util/Cache;
1: return
LocalVariableTable:
Start End Slot Name Signature
public static java.lang.reflect.Method findMethod(java.lang.Class<?>, java.lang.String, java.lang.Class<?>[]);
descriptor: (Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "Method name is not set"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 2
invokestatic com.sun.beans.finder.PrimitiveWrapperMap.replacePrimitivesWithWrappers:([Ljava/lang/Class;)V
3: new com.sun.beans.finder.Signature
dup
aload 0
aload 1
aload 2
invokespecial com.sun.beans.finder.Signature.<init>:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
astore 3
start local 3 4: getstatic com.sun.beans.finder.MethodFinder.CACHE:Lcom/sun/beans/util/Cache;
aload 3
invokevirtual com.sun.beans.util.Cache.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.reflect.Method
astore 4
start local 4 5: aload 4
ifnull 6
aload 4
invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
invokestatic sun.reflect.misc.ReflectUtil.isPackageAccessible:(Ljava/lang/Class;)Z
ifeq 7
StackMap locals: com.sun.beans.finder.Signature java.lang.reflect.Method
StackMap stack:
6: aload 4
goto 8
StackMap locals:
StackMap stack:
7: getstatic com.sun.beans.finder.MethodFinder.CACHE:Lcom/sun/beans/util/Cache;
aload 3
invokevirtual com.sun.beans.util.Cache.create:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.reflect.Method
StackMap locals:
StackMap stack: java.lang.reflect.Method
8: areturn
end local 4 9: StackMap locals: java.lang.Class java.lang.String java.lang.Class[] com.sun.beans.finder.Signature
StackMap stack: com.sun.beans.finder.SignatureException
astore 4
start local 4 10: aload 4
new java.lang.StringBuilder
dup
ldc "Method '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' is not found"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.beans.finder.SignatureException.toNoSuchMethodException:(Ljava/lang/String;)Ljava/lang/NoSuchMethodException;
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 type Ljava/lang/Class<*>;
0 11 1 name Ljava/lang/String;
0 11 2 args [Ljava/lang/Class;
4 11 3 signature Lcom/sun/beans/finder/Signature;
5 9 4 method Ljava/lang/reflect/Method;
10 11 4 exception Lcom/sun/beans/finder/SignatureException;
Exception table:
from to target type
4 8 9 Class com.sun.beans.finder.SignatureException
Exceptions:
throws java.lang.NoSuchMethodException
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;[Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
type
name
args
public static java.lang.reflect.Method findInstanceMethod(java.lang.Class<?>, java.lang.String, java.lang.Class<?>[]);
descriptor: (Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic com.sun.beans.finder.MethodFinder.findMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 3
start local 3 1: aload 3
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 3
2: new java.lang.NoSuchMethodException
dup
new java.lang.StringBuilder
dup
ldc "Method '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' is static"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.lang.reflect.Method
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 type Ljava/lang/Class<*>;
0 4 1 name Ljava/lang/String;
0 4 2 args [Ljava/lang/Class;
1 4 3 method Ljava/lang/reflect/Method;
Exceptions:
throws java.lang.NoSuchMethodException
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;[Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
type
name
args
public static java.lang.reflect.Method findStaticMethod(java.lang.Class<?>, java.lang.String, java.lang.Class<?>[]);
descriptor: (Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic com.sun.beans.finder.MethodFinder.findMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 3
start local 3 1: aload 3
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifne 3
2: new java.lang.NoSuchMethodException
dup
new java.lang.StringBuilder
dup
ldc "Method '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' is not static"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.lang.reflect.Method
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 type Ljava/lang/Class<*>;
0 4 1 name Ljava/lang/String;
0 4 2 args [Ljava/lang/Class;
1 4 3 method Ljava/lang/reflect/Method;
Exceptions:
throws java.lang.NoSuchMethodException
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;[Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
type
name
args
public static java.lang.reflect.Method findAccessibleMethod(java.lang.reflect.Method);
descriptor: (Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
astore 1
start local 1 1: aload 1
invokevirtual java.lang.Class.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
ifeq 3
aload 1
invokestatic sun.reflect.misc.ReflectUtil.isPackageAccessible:(Ljava/lang/Class;)Z
ifeq 3
2: aload 0
areturn
3: StackMap locals: java.lang.Class
StackMap stack:
aload 0
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 5
4: new java.lang.NoSuchMethodException
dup
new java.lang.StringBuilder
dup
ldc "Method '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' is not accessible"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Class.getGenericInterfaces:()[Ljava/lang/reflect/Type;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 11
StackMap locals: java.lang.reflect.Method java.lang.Class top int int java.lang.reflect.Type[]
StackMap stack:
6: aload 5
iload 3
aaload
astore 2
start local 2 7: aload 0
aload 2
invokestatic com.sun.beans.finder.MethodFinder.findAccessibleMethod:(Ljava/lang/reflect/Method;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Method;
8: areturn
9: StackMap locals: java.lang.reflect.Method java.lang.Class java.lang.reflect.Type int int java.lang.reflect.Type[]
StackMap stack: java.lang.NoSuchMethodException
pop
end local 2 10: iinc 3 1
StackMap locals: java.lang.reflect.Method java.lang.Class top int int java.lang.reflect.Type[]
StackMap stack:
11: iload 3
iload 4
if_icmplt 6
12: aload 0
aload 1
invokevirtual java.lang.Class.getGenericSuperclass:()Ljava/lang/reflect/Type;
invokestatic com.sun.beans.finder.MethodFinder.findAccessibleMethod:(Ljava/lang/reflect/Method;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Method;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 method Ljava/lang/reflect/Method;
1 13 1 type Ljava/lang/Class<*>;
7 10 2 generic Ljava/lang/reflect/Type;
Exception table:
from to target type
7 8 9 Class java.lang.NoSuchMethodException
Exceptions:
throws java.lang.NoSuchMethodException
MethodParameters:
Name Flags
method
private static java.lang.reflect.Method findAccessibleMethod(java.lang.reflect.Method, java.lang.reflect.Type);
descriptor: (Ljava/lang/reflect/Method;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Method;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=12, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
astore 3
start local 3 2: aload 1
instanceof java.lang.Class
ifeq 5
3: aload 1
checkcast java.lang.Class
astore 4
start local 4 4: aload 4
aload 2
aload 3
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
invokestatic com.sun.beans.finder.MethodFinder.findAccessibleMethod:(Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
areturn
end local 4 5: StackMap locals: java.lang.String java.lang.Class[]
StackMap stack:
aload 1
instanceof java.lang.reflect.ParameterizedType
ifeq 21
6: aload 1
checkcast java.lang.reflect.ParameterizedType
astore 4
start local 4 7: aload 4
invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
checkcast java.lang.Class
astore 5
start local 5 8: aload 5
invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 20
StackMap locals: java.lang.reflect.Method java.lang.reflect.Type java.lang.String java.lang.Class[] java.lang.reflect.ParameterizedType java.lang.Class top int int java.lang.reflect.Method[]
StackMap stack:
9: aload 9
iload 7
aaload
astore 6
start local 6 10: aload 6
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 19
11: aload 6
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
astore 10
start local 10 12: aload 10
arraylength
aload 3
arraylength
if_icmpne 19
13: aload 3
aload 10
invokestatic java.util.Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z
ifeq 15
14: aload 6
invokestatic com.sun.beans.finder.MethodFinder.findAccessibleMethod:(Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
areturn
15: StackMap locals: java.lang.reflect.Method java.lang.reflect.Type java.lang.String java.lang.Class[] java.lang.reflect.ParameterizedType java.lang.Class java.lang.reflect.Method int int java.lang.reflect.Method[] java.lang.Class[]
StackMap stack:
aload 6
invokevirtual java.lang.reflect.Method.getGenericParameterTypes:()[Ljava/lang/reflect/Type;
astore 11
start local 11 16: aload 3
arraylength
aload 11
arraylength
if_icmpne 19
17: aload 3
aload 4
aload 11
invokestatic com.sun.beans.TypeResolver.resolve:(Ljava/lang/reflect/Type;[Ljava/lang/reflect/Type;)[Ljava/lang/reflect/Type;
invokestatic com.sun.beans.TypeResolver.erase:([Ljava/lang/reflect/Type;)[Ljava/lang/Class;
invokestatic java.util.Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z
ifeq 19
18: aload 6
invokestatic com.sun.beans.finder.MethodFinder.findAccessibleMethod:(Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
areturn
end local 11 end local 10 end local 6 19: StackMap locals: java.lang.reflect.Method java.lang.reflect.Type java.lang.String java.lang.Class[] java.lang.reflect.ParameterizedType java.lang.Class top int int java.lang.reflect.Method[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
20: iload 7
iload 8
if_icmplt 9
end local 5 end local 4 21: StackMap locals: java.lang.reflect.Method java.lang.reflect.Type java.lang.String java.lang.Class[]
StackMap stack:
new java.lang.NoSuchMethodException
dup
new java.lang.StringBuilder
dup
ldc "Method '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' is not accessible"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 method Ljava/lang/reflect/Method;
0 22 1 generic Ljava/lang/reflect/Type;
1 22 2 name Ljava/lang/String;
2 22 3 params [Ljava/lang/Class;
4 5 4 type Ljava/lang/Class<*>;
7 21 4 pt Ljava/lang/reflect/ParameterizedType;
8 21 5 type Ljava/lang/Class<*>;
10 19 6 m Ljava/lang/reflect/Method;
12 19 10 pts [Ljava/lang/Class;
16 19 11 gpts [Ljava/lang/reflect/Type;
Exceptions:
throws java.lang.NoSuchMethodException
MethodParameters:
Name Flags
method
generic
private void <init>(java.lang.String, java.lang.Class<?>[]);
descriptor: (Ljava/lang/String;[Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokespecial com.sun.beans.finder.AbstractFinder.<init>:([Ljava/lang/Class;)V
1: aload 0
aload 1
putfield com.sun.beans.finder.MethodFinder.name:Ljava/lang/String;
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/beans/finder/MethodFinder;
0 3 1 name Ljava/lang/String;
0 3 2 args [Ljava/lang/Class;
Signature: (Ljava/lang/String;[Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
name
args
protected java.lang.Class<?>[] getParameters(java.lang.reflect.Method);
descriptor: (Ljava/lang/reflect/Method;)[Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/beans/finder/MethodFinder;
0 1 1 method Ljava/lang/reflect/Method;
Signature: (Ljava/lang/reflect/Method;)[Ljava/lang/Class<*>;
MethodParameters:
Name Flags
method
protected boolean isVarArgs(java.lang.reflect.Method);
descriptor: (Ljava/lang/reflect/Method;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.reflect.Method.isVarArgs:()Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/beans/finder/MethodFinder;
0 1 1 method Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
method
protected boolean isValid(java.lang.reflect.Method);
descriptor: (Ljava/lang/reflect/Method;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial com.sun.beans.finder.AbstractFinder.isValid:(Ljava/lang/reflect/Member;)Z
ifeq 1
aload 1
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
aload 0
getfield com.sun.beans.finder.MethodFinder.name:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/beans/finder/MethodFinder;
0 2 1 method Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
method
protected boolean isVarArgs(java.lang.reflect.Member);
descriptor: (Ljava/lang/reflect/Member;)Z
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast java.lang.reflect.Method
invokevirtual com.sun.beans.finder.MethodFinder.isVarArgs:(Ljava/lang/reflect/Method;)Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
protected java.lang.Class[] getParameters(java.lang.reflect.Member);
descriptor: (Ljava/lang/reflect/Member;)[Ljava/lang/Class;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast java.lang.reflect.Method
invokevirtual com.sun.beans.finder.MethodFinder.getParameters:(Ljava/lang/reflect/Method;)[Ljava/lang/Class;
areturn
LocalVariableTable:
Start End Slot Name Signature
protected boolean isValid(java.lang.reflect.Member);
descriptor: (Ljava/lang/reflect/Member;)Z
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast java.lang.reflect.Method
invokevirtual com.sun.beans.finder.MethodFinder.isValid:(Ljava/lang/reflect/Method;)Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lcom/sun/beans/finder/AbstractFinder<Ljava/lang/reflect/Method;>;
SourceFile: "MethodFinder.java"
NestMembers:
com.sun.beans.finder.MethodFinder$1
InnerClasses:
com.sun.beans.finder.MethodFinder$1
public abstract Kind = com.sun.beans.util.Cache$Kind of com.sun.beans.util.Cache