public class org.springframework.expression.spel.ast.OperatorInstanceof extends org.springframework.expression.spel.ast.Operator
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.expression.spel.ast.OperatorInstanceof
super_class: org.springframework.expression.spel.ast.Operator
{
private java.lang.Class<?> type;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void <init>(int, org.springframework.expression.spel.ast.SpelNodeImpl[]);
descriptor: (I[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ldc "instanceof"
iload 1
aload 2
invokespecial org.springframework.expression.spel.ast.Operator.<init>:(Ljava/lang/String;I[Lorg/springframework/expression/spel/ast/SpelNodeImpl;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/expression/spel/ast/OperatorInstanceof;
0 2 1 pos I
0 2 2 operands [Lorg/springframework/expression/spel/ast/SpelNodeImpl;
MethodParameters:
Name Flags
pos
operands
public org.springframework.expression.spel.support.BooleanTypedValue getValueInternal(org.springframework.expression.spel.ExpressionState);
descriptor: (Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/spel/support/BooleanTypedValue;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=9, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.springframework.expression.spel.ast.OperatorInstanceof.getRightOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
astore 2
start local 2 1: aload 0
invokevirtual org.springframework.expression.spel.ast.OperatorInstanceof.getLeftOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
aload 1
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getValueInternal:(Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/TypedValue;
astore 3
start local 3 2: aload 2
aload 1
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getValueInternal:(Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/TypedValue;
astore 4
start local 4 3: aload 3
invokevirtual org.springframework.expression.TypedValue.getValue:()Ljava/lang/Object;
astore 5
start local 5 4: aload 4
invokevirtual org.springframework.expression.TypedValue.getValue:()Ljava/lang/Object;
astore 6
start local 6 5: aload 6
ifnull 6
aload 6
instanceof java.lang.Class
ifne 11
6: StackMap locals: org.springframework.expression.spel.ast.OperatorInstanceof org.springframework.expression.spel.ExpressionState org.springframework.expression.spel.ast.SpelNodeImpl org.springframework.expression.TypedValue org.springframework.expression.TypedValue java.lang.Object java.lang.Object
StackMap stack:
new org.springframework.expression.spel.SpelEvaluationException
dup
aload 0
invokevirtual org.springframework.expression.spel.ast.OperatorInstanceof.getRightOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.getStartPosition:()I
7: getstatic org.springframework.expression.spel.SpelMessage.INSTANCEOF_OPERATOR_NEEDS_CLASS_OPERAND:Lorg/springframework/expression/spel/SpelMessage;
iconst_1
anewarray java.lang.Object
dup
iconst_0
8: aload 6
ifnonnull 9
ldc "null"
goto 10
StackMap locals: org.springframework.expression.spel.ast.OperatorInstanceof org.springframework.expression.spel.ExpressionState org.springframework.expression.spel.ast.SpelNodeImpl org.springframework.expression.TypedValue org.springframework.expression.TypedValue java.lang.Object java.lang.Object
StackMap stack: new 6 new 6 int org.springframework.expression.spel.SpelMessage java.lang.Object[] java.lang.Object[] int
9: aload 6
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
10: StackMap locals: org.springframework.expression.spel.ast.OperatorInstanceof org.springframework.expression.spel.ExpressionState org.springframework.expression.spel.ast.SpelNodeImpl org.springframework.expression.TypedValue org.springframework.expression.TypedValue java.lang.Object java.lang.Object
StackMap stack: new 6 new 6 int org.springframework.expression.spel.SpelMessage java.lang.Object[] java.lang.Object[] int java.lang.String
aastore
invokespecial org.springframework.expression.spel.SpelEvaluationException.<init>:(ILorg/springframework/expression/spel/SpelMessage;[Ljava/lang/Object;)V
athrow
11: StackMap locals:
StackMap stack:
aload 6
checkcast java.lang.Class
astore 8
start local 8 12: aload 5
ifnonnull 15
13: getstatic org.springframework.expression.spel.support.BooleanTypedValue.FALSE:Lorg/springframework/expression/spel/support/BooleanTypedValue;
astore 7
start local 7 14: goto 16
end local 7 15: StackMap locals: org.springframework.expression.spel.ast.OperatorInstanceof org.springframework.expression.spel.ExpressionState org.springframework.expression.spel.ast.SpelNodeImpl org.springframework.expression.TypedValue org.springframework.expression.TypedValue java.lang.Object java.lang.Object top java.lang.Class
StackMap stack:
aload 8
aload 5
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
invokestatic org.springframework.expression.spel.support.BooleanTypedValue.forValue:(Z)Lorg/springframework/expression/spel/support/BooleanTypedValue;
astore 7
start local 7 16: StackMap locals: org.springframework.expression.spel.ast.OperatorInstanceof org.springframework.expression.spel.ExpressionState org.springframework.expression.spel.ast.SpelNodeImpl org.springframework.expression.TypedValue org.springframework.expression.TypedValue java.lang.Object java.lang.Object org.springframework.expression.spel.support.BooleanTypedValue java.lang.Class
StackMap stack:
aload 0
aload 8
putfield org.springframework.expression.spel.ast.OperatorInstanceof.type:Ljava/lang/Class;
17: aload 2
instanceof org.springframework.expression.spel.ast.TypeReference
ifeq 19
18: aload 0
ldc "Z"
putfield org.springframework.expression.spel.ast.OperatorInstanceof.exitTypeDescriptor:Ljava/lang/String;
19: StackMap locals:
StackMap stack:
aload 7
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/springframework/expression/spel/ast/OperatorInstanceof;
0 20 1 state Lorg/springframework/expression/spel/ExpressionState;
1 20 2 rightOperand Lorg/springframework/expression/spel/ast/SpelNodeImpl;
2 20 3 left Lorg/springframework/expression/TypedValue;
3 20 4 right Lorg/springframework/expression/TypedValue;
4 20 5 leftValue Ljava/lang/Object;
5 20 6 rightValue Ljava/lang/Object;
14 15 7 result Lorg/springframework/expression/spel/support/BooleanTypedValue;
16 20 7 result Lorg/springframework/expression/spel/support/BooleanTypedValue;
12 20 8 rightClass Ljava/lang/Class<*>;
Exceptions:
throws org.springframework.expression.EvaluationException
MethodParameters:
Name Flags
state
public boolean isCompilable();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.expression.spel.ast.OperatorInstanceof.exitTypeDescriptor:Ljava/lang/String;
ifnull 1
aload 0
invokevirtual org.springframework.expression.spel.ast.OperatorInstanceof.getLeftOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.isCompilable:()Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/expression/spel/ast/OperatorInstanceof;
public void generateCode(org.springframework.asm.MethodVisitor, org.springframework.expression.spel.CodeFlow);
descriptor: (Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.springframework.expression.spel.ast.OperatorInstanceof.getLeftOperand:()Lorg/springframework/expression/spel/ast/SpelNodeImpl;
aload 1
aload 2
invokevirtual org.springframework.expression.spel.ast.SpelNodeImpl.generateCode:(Lorg/springframework/asm/MethodVisitor;Lorg/springframework/expression/spel/CodeFlow;)V
1: aload 1
aload 2
invokevirtual org.springframework.expression.spel.CodeFlow.lastDescriptor:()Ljava/lang/String;
invokestatic org.springframework.expression.spel.CodeFlow.insertBoxIfNecessary:(Lorg/springframework/asm/MethodVisitor;Ljava/lang/String;)V
2: aload 0
getfield org.springframework.expression.spel.ast.OperatorInstanceof.type:Ljava/lang/Class;
ifnull 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: ldc "No type available"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
5: aload 0
getfield org.springframework.expression.spel.ast.OperatorInstanceof.type:Ljava/lang/Class;
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 9
6: aload 1
bipush 87
invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
7: aload 1
iconst_3
invokevirtual org.springframework.asm.MethodVisitor.visitInsn:(I)V
8: goto 10
9: StackMap locals:
StackMap stack:
aload 1
sipush 193
aload 0
getfield org.springframework.expression.spel.ast.OperatorInstanceof.type:Ljava/lang/Class;
invokestatic org.springframework.asm.Type.getInternalName:(Ljava/lang/Class;)Ljava/lang/String;
invokevirtual org.springframework.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
10: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.springframework.expression.spel.ast.OperatorInstanceof.exitTypeDescriptor:Ljava/lang/String;
invokevirtual org.springframework.expression.spel.CodeFlow.pushDescriptor:(Ljava/lang/String;)V
11: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/springframework/expression/spel/ast/OperatorInstanceof;
0 12 1 mv Lorg/springframework/asm/MethodVisitor;
0 12 2 cf Lorg/springframework/expression/spel/CodeFlow;
MethodParameters:
Name Flags
mv
cf
public org.springframework.expression.TypedValue getValueInternal(org.springframework.expression.spel.ExpressionState);
descriptor: (Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/TypedValue;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual org.springframework.expression.spel.ast.OperatorInstanceof.getValueInternal:(Lorg/springframework/expression/spel/ExpressionState;)Lorg/springframework/expression/spel/support/BooleanTypedValue;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws org.springframework.expression.EvaluationException
}
SourceFile: "OperatorInstanceof.java"