public class org.springframework.data.spel.spi.Function
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.data.spel.spi.Function
super_class: java.lang.Object
{
private final java.lang.reflect.Method method;
descriptor: Ljava/lang/reflect/Method;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object target;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void <init>(java.lang.reflect.Method);
descriptor: (Ljava/lang/reflect/Method;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokespecial org.springframework.data.spel.spi.Function.<init>:(Ljava/lang/reflect/Method;Ljava/lang/Object;)V
1: aload 1
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ldc "Method must be static!"
invokestatic org.springframework.util.Assert.isTrue:(ZLjava/lang/String;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/data/spel/spi/Function;
0 3 1 method Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
method
public void <init>(java.lang.reflect.Method, java.lang.Object);
descriptor: (Ljava/lang/reflect/Method;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, 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 1
ldc "Method must not be null!"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
2: aload 2
ifnonnull 3
aload 1
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifne 3
iconst_0
goto 4
StackMap locals: org.springframework.data.spel.spi.Function java.lang.reflect.Method java.lang.Object
StackMap stack:
3: iconst_1
4: StackMap locals:
StackMap stack: int
ldc "Method must either be static or a non-static one with a target object!"
5: invokestatic org.springframework.util.Assert.isTrue:(ZLjava/lang/String;)V
6: aload 0
aload 1
putfield org.springframework.data.spel.spi.Function.method:Ljava/lang/reflect/Method;
7: aload 0
aload 2
putfield org.springframework.data.spel.spi.Function.target:Ljava/lang/Object;
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/data/spel/spi/Function;
0 9 1 method Ljava/lang/reflect/Method;
0 9 2 target Ljava/lang/Object;
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
method
target
public java.lang.Object invoke(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.data.spel.spi.Function.method:Ljava/lang/reflect/Method;
invokevirtual java.lang.reflect.Method.getParameterCount:()I
aload 1
arraylength
if_icmpne 2
1: aload 0
getfield org.springframework.data.spel.spi.Function.method:Ljava/lang/reflect/Method;
aload 0
getfield org.springframework.data.spel.spi.Function.target:Ljava/lang/Object;
aload 1
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.data.spel.spi.Function.method:Ljava/lang/reflect/Method;
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
astore 2
start local 2 3: aload 2
aload 2
arraylength
iconst_1
isub
aaload
astore 3
start local 3 4: aload 3
invokevirtual java.lang.Class.isArray:()Z
ifeq 22
5: new java.util.ArrayList
dup
aload 2
arraylength
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 6: iconst_0
istore 5
start local 5 7: goto 10
8: StackMap locals: org.springframework.data.spel.spi.Function java.lang.Object[] java.lang.Class[] java.lang.Class java.util.List int
StackMap stack:
aload 4
aload 1
iload 5
aaload
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
9: iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
aload 2
arraylength
iconst_1
isub
if_icmplt 8
end local 5 11: aload 3
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
aload 1
arraylength
aload 2
arraylength
isub
iconst_1
iadd
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
checkcast java.lang.Object[]
astore 5
start local 5 12: iconst_0
istore 6
start local 6 13: aload 2
arraylength
iconst_1
isub
istore 7
start local 7 14: goto 17
15: StackMap locals: org.springframework.data.spel.spi.Function java.lang.Object[] java.lang.Class[] java.lang.Class java.util.List java.lang.Object[] int int
StackMap stack:
aload 5
iload 6
iinc 6 1
aload 1
iload 7
aaload
aastore
16: iinc 7 1
StackMap locals:
StackMap stack:
17: iload 7
aload 1
arraylength
if_icmplt 15
end local 7 18: aload 4
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
19: aload 0
getfield org.springframework.data.spel.spi.Function.method:Ljava/lang/reflect/Method;
aload 0
getfield org.springframework.data.spel.spi.Function.target:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 20
aload 4
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
goto 21
StackMap locals: org.springframework.data.spel.spi.Function java.lang.Object[] java.lang.Class[] java.lang.Class java.util.List java.lang.Object[] int
StackMap stack: java.lang.reflect.Method java.lang.Object java.lang.Object[] java.lang.Object[] int
20: aload 4
invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
StackMap locals: org.springframework.data.spel.spi.Function java.lang.Object[] java.lang.Class[] java.lang.Class java.util.List java.lang.Object[] int
StackMap stack: java.lang.reflect.Method java.lang.Object java.lang.Object[] java.lang.Object[] int java.lang.Object
21: aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 6 end local 5 end local 4 22: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "Could not invoke method %s for arguments %s!"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.springframework.data.spel.spi.Function.method:Ljava/lang/reflect/Method;
aastore
dup
iconst_1
aload 1
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<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 23 0 this Lorg/springframework/data/spel/spi/Function;
0 23 1 arguments [Ljava/lang/Object;
3 23 2 types [Ljava/lang/Class;
4 23 3 tailType Ljava/lang/Class<*>;
6 22 4 argumentsToUse Ljava/util/List<Ljava/lang/Object;>;
7 11 5 i I
12 22 5 varargs [Ljava/lang/Object;
13 22 6 count I
14 18 7 i I
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
arguments
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.data.spel.spi.Function.method:Ljava/lang/reflect/Method;
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/data/spel/spi/Function;
public java.lang.Class<?> getDeclaringClass();
descriptor: ()Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.data.spel.spi.Function.method:Ljava/lang/reflect/Method;
invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/data/spel/spi/Function;
Signature: ()Ljava/lang/Class<*>;
public boolean supports(java.util.List<org.springframework.core.convert.TypeDescriptor>);
descriptor: (Ljava/util/List;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.springframework.data.util.ParameterTypes.of:(Ljava/util/List;)Lorg/springframework/data/util/ParameterTypes;
aload 0
getfield org.springframework.data.spel.spi.Function.method:Ljava/lang/reflect/Method;
invokevirtual org.springframework.data.util.ParameterTypes.areValidFor:(Ljava/lang/reflect/Method;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/data/spel/spi/Function;
0 1 1 argumentTypes Ljava/util/List<Lorg/springframework/core/convert/TypeDescriptor;>;
Signature: (Ljava/util/List<Lorg/springframework/core/convert/TypeDescriptor;>;)Z
MethodParameters:
Name Flags
argumentTypes
public int getParameterCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.data.spel.spi.Function.method:Ljava/lang/reflect/Method;
invokevirtual java.lang.reflect.Method.getParameterCount:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/data/spel/spi/Function;
public boolean supportsExact(java.util.List<org.springframework.core.convert.TypeDescriptor>);
descriptor: (Ljava/util/List;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.springframework.data.util.ParameterTypes.of:(Ljava/util/List;)Lorg/springframework/data/util/ParameterTypes;
aload 0
getfield org.springframework.data.spel.spi.Function.method:Ljava/lang/reflect/Method;
invokevirtual org.springframework.data.util.ParameterTypes.exactlyMatchParametersOf:(Ljava/lang/reflect/Method;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/data/spel/spi/Function;
0 1 1 argumentTypes Ljava/util/List<Lorg/springframework/core/convert/TypeDescriptor;>;
Signature: (Ljava/util/List<Lorg/springframework/core/convert/TypeDescriptor;>;)Z
MethodParameters:
Name Flags
argumentTypes
public boolean isSignatureEqual(org.springframework.data.spel.spi.Function);
descriptor: (Lorg/springframework/data/spel/spi/Function;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.springframework.data.spel.spi.Function.getName:()Ljava/lang/String;
aload 1
invokevirtual org.springframework.data.spel.spi.Function.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
1: aload 0
getfield org.springframework.data.spel.spi.Function.method:Ljava/lang/reflect/Method;
invokevirtual java.lang.reflect.Method.getParameterCount:()I
aload 1
getfield org.springframework.data.spel.spi.Function.method:Ljava/lang/reflect/Method;
invokevirtual java.lang.reflect.Method.getParameterCount:()I
if_icmpne 4
2: aload 0
getfield org.springframework.data.spel.spi.Function.method:Ljava/lang/reflect/Method;
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
aload 1
getfield org.springframework.data.spel.spi.Function.method:Ljava/lang/reflect/Method;
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
invokestatic java.util.Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z
ifeq 4
3: iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/data/spel/spi/Function;
0 5 1 other Lorg/springframework/data/spel/spi/Function;
MethodParameters:
Name Flags
other
}
SourceFile: "Function.java"