public class org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker implements org.springframework.boot.actuate.endpoint.invoke.OperationInvoker
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker
super_class: java.lang.Object
{
private final java.lang.Object target;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.springframework.boot.actuate.endpoint.invoke.reflect.OperationMethod operationMethod;
descriptor: Lorg/springframework/boot/actuate/endpoint/invoke/reflect/OperationMethod;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.springframework.boot.actuate.endpoint.invoke.ParameterValueMapper parameterValueMapper;
descriptor: Lorg/springframework/boot/actuate/endpoint/invoke/ParameterValueMapper;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.lang.Object, org.springframework.boot.actuate.endpoint.invoke.reflect.OperationMethod, org.springframework.boot.actuate.endpoint.invoke.ParameterValueMapper);
descriptor: (Ljava/lang/Object;Lorg/springframework/boot/actuate/endpoint/invoke/reflect/OperationMethod;Lorg/springframework/boot/actuate/endpoint/invoke/ParameterValueMapper;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, 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 1
ldc "Target must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
2: aload 2
ldc "OperationMethod must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
3: aload 3
ldc "ParameterValueMapper must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
4: aload 2
invokevirtual org.springframework.boot.actuate.endpoint.invoke.reflect.OperationMethod.getMethod:()Ljava/lang/reflect/Method;
invokestatic org.springframework.util.ReflectionUtils.makeAccessible:(Ljava/lang/reflect/Method;)V
5: aload 0
aload 1
putfield org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.target:Ljava/lang/Object;
6: aload 0
aload 2
putfield org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.operationMethod:Lorg/springframework/boot/actuate/endpoint/invoke/reflect/OperationMethod;
7: aload 0
aload 3
putfield org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.parameterValueMapper:Lorg/springframework/boot/actuate/endpoint/invoke/ParameterValueMapper;
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/boot/actuate/endpoint/invoke/reflect/ReflectiveOperationInvoker;
0 9 1 target Ljava/lang/Object;
0 9 2 operationMethod Lorg/springframework/boot/actuate/endpoint/invoke/reflect/OperationMethod;
0 9 3 parameterValueMapper Lorg/springframework/boot/actuate/endpoint/invoke/ParameterValueMapper;
MethodParameters:
Name Flags
target
operationMethod
parameterValueMapper
public java.lang.Object invoke(org.springframework.boot.actuate.endpoint.InvocationContext);
descriptor: (Lorg/springframework/boot/actuate/endpoint/InvocationContext;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.validateRequiredParameters:(Lorg/springframework/boot/actuate/endpoint/InvocationContext;)V
1: aload 0
getfield org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.operationMethod:Lorg/springframework/boot/actuate/endpoint/invoke/reflect/OperationMethod;
invokevirtual org.springframework.boot.actuate.endpoint.invoke.reflect.OperationMethod.getMethod:()Ljava/lang/reflect/Method;
astore 2
start local 2 2: aload 0
aload 1
invokevirtual org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.resolveArguments:(Lorg/springframework/boot/actuate/endpoint/InvocationContext;)[Ljava/lang/Object;
astore 3
start local 3 3: aload 2
invokestatic org.springframework.util.ReflectionUtils.makeAccessible:(Ljava/lang/reflect/Method;)V
4: aload 2
aload 0
getfield org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.target:Ljava/lang/Object;
aload 3
invokestatic org.springframework.util.ReflectionUtils.invokeMethod:(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/boot/actuate/endpoint/invoke/reflect/ReflectiveOperationInvoker;
0 5 1 context Lorg/springframework/boot/actuate/endpoint/InvocationContext;
2 5 2 method Ljava/lang/reflect/Method;
3 5 3 resolvedArguments [Ljava/lang/Object;
MethodParameters:
Name Flags
context
private void validateRequiredParameters(org.springframework.boot.actuate.endpoint.InvocationContext);
descriptor: (Lorg/springframework/boot/actuate/endpoint/InvocationContext;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.operationMethod:Lorg/springframework/boot/actuate/endpoint/invoke/reflect/OperationMethod;
invokevirtual org.springframework.boot.actuate.endpoint.invoke.reflect.OperationMethod.getParameters:()Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameters;
invokeinterface org.springframework.boot.actuate.endpoint.invoke.OperationParameters.stream:()Ljava/util/stream/Stream;
1: aload 0
aload 1
invokedynamic test(Lorg/springframework/boot/actuate/endpoint/invoke/reflect/ReflectiveOperationInvoker;Lorg/springframework/boot/actuate/endpoint/InvocationContext;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
org/springframework/boot/actuate/endpoint/invoke/reflect/ReflectiveOperationInvoker.lambda$0(Lorg/springframework/boot/actuate/endpoint/InvocationContext;Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;)Z (7)
(Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.Set
2: astore 2
start local 2 3: aload 2
invokeinterface java.util.Set.isEmpty:()Z
ifne 5
4: new org.springframework.boot.actuate.endpoint.invoke.MissingParametersException
dup
aload 2
invokespecial org.springframework.boot.actuate.endpoint.invoke.MissingParametersException.<init>:(Ljava/util/Set;)V
athrow
5: StackMap locals: java.util.Set
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/boot/actuate/endpoint/invoke/reflect/ReflectiveOperationInvoker;
0 6 1 context Lorg/springframework/boot/actuate/endpoint/InvocationContext;
3 6 2 missing Ljava/util/Set<Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;>;
MethodParameters:
Name Flags
context
private boolean isMissing(org.springframework.boot.actuate.endpoint.InvocationContext, org.springframework.boot.actuate.endpoint.invoke.OperationParameter);
descriptor: (Lorg/springframework/boot/actuate/endpoint/InvocationContext;Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface org.springframework.boot.actuate.endpoint.invoke.OperationParameter.isMandatory:()Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
ldc Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;
aload 2
invokeinterface org.springframework.boot.actuate.endpoint.invoke.OperationParameter.getType:()Ljava/lang/Class;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
ldc Ljava/security/Principal;
aload 2
invokeinterface org.springframework.boot.actuate.endpoint.invoke.OperationParameter.getType:()Ljava/lang/Class;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 7
5: aload 1
invokevirtual org.springframework.boot.actuate.endpoint.InvocationContext.getSecurityContext:()Lorg/springframework/boot/actuate/endpoint/SecurityContext;
invokeinterface org.springframework.boot.actuate.endpoint.SecurityContext.getPrincipal:()Ljava/security/Principal;
ifnonnull 6
iconst_1
ireturn
StackMap locals:
StackMap stack:
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
ldc Lorg/springframework/boot/actuate/endpoint/SecurityContext;
aload 2
invokeinterface org.springframework.boot.actuate.endpoint.invoke.OperationParameter.getType:()Ljava/lang/Class;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 9
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.springframework.boot.actuate.endpoint.InvocationContext.getArguments:()Ljava/util/Map;
aload 2
invokeinterface org.springframework.boot.actuate.endpoint.invoke.OperationParameter.getName:()Ljava/lang/String;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 10
iconst_1
ireturn
StackMap locals:
StackMap stack:
10: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/springframework/boot/actuate/endpoint/invoke/reflect/ReflectiveOperationInvoker;
0 11 1 context Lorg/springframework/boot/actuate/endpoint/InvocationContext;
0 11 2 parameter Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;
MethodParameters:
Name Flags
context
parameter
private java.lang.Object[] resolveArguments(org.springframework.boot.actuate.endpoint.InvocationContext);
descriptor: (Lorg/springframework/boot/actuate/endpoint/InvocationContext;)[Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.operationMethod:Lorg/springframework/boot/actuate/endpoint/invoke/reflect/OperationMethod;
invokevirtual org.springframework.boot.actuate.endpoint.invoke.reflect.OperationMethod.getParameters:()Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameters;
invokeinterface org.springframework.boot.actuate.endpoint.invoke.OperationParameters.stream:()Ljava/util/stream/Stream;
aload 0
aload 1
invokedynamic apply(Lorg/springframework/boot/actuate/endpoint/invoke/reflect/ReflectiveOperationInvoker;Lorg/springframework/boot/actuate/endpoint/InvocationContext;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/springframework/boot/actuate/endpoint/invoke/reflect/ReflectiveOperationInvoker.lambda$1(Lorg/springframework/boot/actuate/endpoint/InvocationContext;Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;)Ljava/lang/Object; (7)
(Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;)Ljava/lang/Object;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
1: invokeinterface java.util.stream.Stream.toArray:()[Ljava/lang/Object;
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/boot/actuate/endpoint/invoke/reflect/ReflectiveOperationInvoker;
0 3 1 context Lorg/springframework/boot/actuate/endpoint/InvocationContext;
MethodParameters:
Name Flags
context
private java.lang.Object resolveArgument(org.springframework.boot.actuate.endpoint.invoke.OperationParameter, org.springframework.boot.actuate.endpoint.InvocationContext);
descriptor: (Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;Lorg/springframework/boot/actuate/endpoint/InvocationContext;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: ldc Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;
aload 1
invokeinterface org.springframework.boot.actuate.endpoint.invoke.OperationParameter.getType:()Ljava/lang/Class;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 2
1: aload 2
invokevirtual org.springframework.boot.actuate.endpoint.InvocationContext.getApiVersion:()Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;
areturn
2: StackMap locals:
StackMap stack:
ldc Ljava/security/Principal;
aload 1
invokeinterface org.springframework.boot.actuate.endpoint.invoke.OperationParameter.getType:()Ljava/lang/Class;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 4
3: aload 2
invokevirtual org.springframework.boot.actuate.endpoint.InvocationContext.getSecurityContext:()Lorg/springframework/boot/actuate/endpoint/SecurityContext;
invokeinterface org.springframework.boot.actuate.endpoint.SecurityContext.getPrincipal:()Ljava/security/Principal;
areturn
4: StackMap locals:
StackMap stack:
ldc Lorg/springframework/boot/actuate/endpoint/SecurityContext;
aload 1
invokeinterface org.springframework.boot.actuate.endpoint.invoke.OperationParameter.getType:()Ljava/lang/Class;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 6
5: aload 2
invokevirtual org.springframework.boot.actuate.endpoint.InvocationContext.getSecurityContext:()Lorg/springframework/boot/actuate/endpoint/SecurityContext;
areturn
6: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.springframework.boot.actuate.endpoint.InvocationContext.getArguments:()Ljava/util/Map;
aload 1
invokeinterface org.springframework.boot.actuate.endpoint.invoke.OperationParameter.getName:()Ljava/lang/String;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 7: aload 0
getfield org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.parameterValueMapper:Lorg/springframework/boot/actuate/endpoint/invoke/ParameterValueMapper;
aload 1
aload 3
invokeinterface org.springframework.boot.actuate.endpoint.invoke.ParameterValueMapper.mapParameterValue:(Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/boot/actuate/endpoint/invoke/reflect/ReflectiveOperationInvoker;
0 8 1 parameter Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;
0 8 2 context Lorg/springframework/boot/actuate/endpoint/InvocationContext;
7 8 3 value Ljava/lang/Object;
MethodParameters:
Name Flags
parameter
context
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.springframework.core.style.ToStringCreator
dup
aload 0
invokespecial org.springframework.core.style.ToStringCreator.<init>:(Ljava/lang/Object;)V
ldc "target"
aload 0
getfield org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.target:Ljava/lang/Object;
invokevirtual org.springframework.core.style.ToStringCreator.append:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/core/style/ToStringCreator;
ldc "method"
aload 0
getfield org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.operationMethod:Lorg/springframework/boot/actuate/endpoint/invoke/reflect/OperationMethod;
invokevirtual org.springframework.core.style.ToStringCreator.append:(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/core/style/ToStringCreator;
1: invokevirtual org.springframework.core.style.ToStringCreator.toString:()Ljava/lang/String;
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/boot/actuate/endpoint/invoke/reflect/ReflectiveOperationInvoker;
private boolean lambda$0(org.springframework.boot.actuate.endpoint.InvocationContext, org.springframework.boot.actuate.endpoint.invoke.OperationParameter);
descriptor: (Lorg/springframework/boot/actuate/endpoint/InvocationContext;Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;)Z
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
aload 2
invokevirtual org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.isMissing:(Lorg/springframework/boot/actuate/endpoint/InvocationContext;Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;)Z
ireturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/boot/actuate/endpoint/invoke/reflect/ReflectiveOperationInvoker;
0 1 2 parameter Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;
private java.lang.Object lambda$1(org.springframework.boot.actuate.endpoint.InvocationContext, org.springframework.boot.actuate.endpoint.invoke.OperationParameter);
descriptor: (Lorg/springframework/boot/actuate/endpoint/InvocationContext;Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;)Ljava/lang/Object;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 2
aload 1
invokevirtual org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.resolveArgument:(Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;Lorg/springframework/boot/actuate/endpoint/InvocationContext;)Ljava/lang/Object;
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/boot/actuate/endpoint/invoke/reflect/ReflectiveOperationInvoker;
0 1 2 parameter Lorg/springframework/boot/actuate/endpoint/invoke/OperationParameter;
}
SourceFile: "ReflectiveOperationInvoker.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles