public class org.springframework.expression.spel.ast.Indexer extends org.springframework.expression.spel.ast.SpelNodeImpl
{
private java.lang.String cachedReadName;
private java.lang.Class cachedReadTargetType;
private org.springframework.expression.PropertyAccessor cachedReadAccessor;
private java.lang.String cachedWriteName;
private java.lang.Class cachedWriteTargetType;
private org.springframework.expression.PropertyAccessor cachedWriteAccessor;
private org.springframework.expression.spel.ast.Indexer$IndexedType indexedType;
public void <init>(int, org.springframework.expression.spel.ast.SpelNodeImpl)
{
org.springframework.expression.spel.ast.Indexer v;
int v;
org.springframework.expression.spel.ast.SpelNodeImpl v;
org.springframework.expression.spel.ast.SpelNodeImpl[] v;
v := @this: org.springframework.expression.spel.ast.Indexer;
v := @parameter: int;
v := @parameter: org.springframework.expression.spel.ast.SpelNodeImpl;
v = newarray (org.springframework.expression.spel.ast.SpelNodeImpl)[1];
v[0] = v;
specialinvoke v.<org.springframework.expression.spel.ast.SpelNodeImpl: void <init>(int,org.springframework.expression.spel.ast.SpelNodeImpl[])>(v, v);
return;
}
public org.springframework.expression.TypedValue getValueInternal(org.springframework.expression.spel.ExpressionState) throws org.springframework.expression.EvaluationException
{
org.springframework.expression.spel.ast.ValueRef v;
org.springframework.expression.spel.ast.Indexer v;
org.springframework.expression.spel.ExpressionState v;
org.springframework.expression.TypedValue v;
v := @this: org.springframework.expression.spel.ast.Indexer;
v := @parameter: org.springframework.expression.spel.ExpressionState;
v = virtualinvoke v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.ValueRef getValueRef(org.springframework.expression.spel.ExpressionState)>(v);
v = interfaceinvoke v.<org.springframework.expression.spel.ast.ValueRef: org.springframework.expression.TypedValue getValue()>();
return v;
}
public void setValue(org.springframework.expression.spel.ExpressionState, java.lang.Object) throws org.springframework.expression.EvaluationException
{
org.springframework.expression.spel.ast.ValueRef v;
org.springframework.expression.spel.ast.Indexer v;
java.lang.Object v;
org.springframework.expression.spel.ExpressionState v;
v := @this: org.springframework.expression.spel.ast.Indexer;
v := @parameter: org.springframework.expression.spel.ExpressionState;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.ValueRef getValueRef(org.springframework.expression.spel.ExpressionState)>(v);
interfaceinvoke v.<org.springframework.expression.spel.ast.ValueRef: void setValue(java.lang.Object)>(v);
return;
}
public boolean isWritable(org.springframework.expression.spel.ExpressionState) throws org.springframework.expression.spel.SpelEvaluationException
{
org.springframework.expression.spel.ExpressionState v;
org.springframework.expression.spel.ast.Indexer v;
v := @this: org.springframework.expression.spel.ast.Indexer;
v := @parameter: org.springframework.expression.spel.ExpressionState;
return 1;
}
protected org.springframework.expression.spel.ast.ValueRef getValueRef(org.springframework.expression.spel.ExpressionState) throws org.springframework.expression.EvaluationException
{
org.springframework.expression.spel.ast.Indexer$StringIndexingLValue v;
boolean v, v, v, v, v, v, v, v, v, v;
org.springframework.expression.spel.ast.Indexer$CollectionIndexingValueRef v;
org.springframework.expression.TypeConverter v, v, v;
org.springframework.expression.EvaluationContext v;
org.springframework.expression.spel.ast.SpelNodeImpl[] v, v, v;
org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef v;
org.springframework.expression.spel.ast.Indexer$IndexedType v, v, v, v, v;
org.springframework.expression.spel.ExpressionState v;
org.springframework.expression.spel.ast.SpelNodeImpl v, v, v;
java.lang.Throwable v;
org.springframework.expression.spel.SpelEvaluationException v, v;
java.lang.Object[] v, v;
org.springframework.expression.spel.ast.Indexer v;
org.springframework.core.convert.TypeDescriptor v, v, v, v, v;
int v, v, v, v;
org.springframework.expression.TypedValue v, v, v, v;
org.springframework.expression.spel.SpelMessage v, v;
org.springframework.expression.spel.ast.Indexer$PropertyIndexingValueRef v;
org.springframework.expression.spel.SpelParserConfiguration v, v;
java.lang.Class v, v, v;
java.lang.Object v, v, v, v;
org.springframework.expression.spel.ast.Indexer$MapIndexingValueRef v;
v := @this: org.springframework.expression.spel.ast.Indexer;
v := @parameter: org.springframework.expression.spel.ExpressionState;
v = virtualinvoke v.<org.springframework.expression.spel.ExpressionState: org.springframework.expression.TypedValue getActiveContextObject()>();
v = virtualinvoke v.<org.springframework.expression.TypedValue: java.lang.Object getValue()>();
v = virtualinvoke v.<org.springframework.expression.TypedValue: org.springframework.core.convert.TypeDescriptor getTypeDescriptor()>();
v = v instanceof java.util.Map;
if v == 0 goto label;
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.SpelNodeImpl[] children>;
v = v[0];
v = v instanceof org.springframework.expression.spel.ast.PropertyOrFieldReference;
if v == 0 goto label;
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.SpelNodeImpl[] children>;
v = v[0];
v = virtualinvoke v.<org.springframework.expression.spel.ast.PropertyOrFieldReference: java.lang.String getName()>();
v = new org.springframework.expression.TypedValue;
specialinvoke v.<org.springframework.expression.TypedValue: void <init>(java.lang.Object)>(v);
v = v;
goto label;
label:
v = virtualinvoke v.<org.springframework.expression.spel.ExpressionState: org.springframework.expression.TypedValue getRootContextObject()>();
virtualinvoke v.<org.springframework.expression.spel.ExpressionState: void pushActiveContextObject(org.springframework.expression.TypedValue)>(v);
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.SpelNodeImpl[] children>;
v = v[0];
v = virtualinvoke v.<org.springframework.expression.spel.ast.SpelNodeImpl: org.springframework.expression.TypedValue getValueInternal(org.springframework.expression.spel.ExpressionState)>(v);
v = virtualinvoke v.<org.springframework.expression.TypedValue: java.lang.Object getValue()>();
label:
virtualinvoke v.<org.springframework.expression.spel.ExpressionState: void popActiveContextObject()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.springframework.expression.spel.ExpressionState: void popActiveContextObject()>();
throw v;
label:
if v != null goto label;
v = new org.springframework.expression.spel.SpelEvaluationException;
v = virtualinvoke v.<org.springframework.expression.spel.ast.Indexer: int getStartPosition()>();
v = <org.springframework.expression.spel.SpelMessage: org.springframework.expression.spel.SpelMessage CANNOT_INDEX_INTO_NULL_VALUE>;
v = newarray (java.lang.Object)[0];
specialinvoke v.<org.springframework.expression.spel.SpelEvaluationException: void <init>(int,org.springframework.expression.spel.SpelMessage,java.lang.Object[])>(v, v, v);
throw v;
label:
v = v instanceof java.util.Map;
if v == 0 goto label;
v = v;
v = virtualinvoke v.<org.springframework.core.convert.TypeDescriptor: org.springframework.core.convert.TypeDescriptor getMapKeyTypeDescriptor()>();
if v == null goto label;
v = virtualinvoke v.<org.springframework.core.convert.TypeDescriptor: org.springframework.core.convert.TypeDescriptor getMapKeyTypeDescriptor()>();
v = virtualinvoke v.<org.springframework.expression.spel.ExpressionState: java.lang.Object convertValue(java.lang.Object,org.springframework.core.convert.TypeDescriptor)>(v, v);
label:
v = <org.springframework.expression.spel.ast.Indexer$IndexedType: org.springframework.expression.spel.ast.Indexer$IndexedType MAP>;
v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.Indexer$IndexedType indexedType> = v;
v = new org.springframework.expression.spel.ast.Indexer$MapIndexingValueRef;
v = virtualinvoke v.<org.springframework.expression.spel.ExpressionState: org.springframework.expression.TypeConverter getTypeConverter()>();
specialinvoke v.<org.springframework.expression.spel.ast.Indexer$MapIndexingValueRef: void <init>(org.springframework.expression.spel.ast.Indexer,org.springframework.expression.TypeConverter,java.util.Map,java.lang.Object,org.springframework.core.convert.TypeDescriptor)>(v, v, v, v, v);
return v;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: boolean isArray()>();
if v != 0 goto label;
v = v instanceof java.util.Collection;
if v != 0 goto label;
v = v instanceof java.lang.String;
if v == 0 goto label;
label:
v = staticinvoke <org.springframework.core.convert.TypeDescriptor: org.springframework.core.convert.TypeDescriptor valueOf(java.lang.Class)>(class "Ljava/lang/Integer;");
v = virtualinvoke v.<org.springframework.expression.spel.ExpressionState: java.lang.Object convertValue(java.lang.Object,org.springframework.core.convert.TypeDescriptor)>(v, v);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: boolean isArray()>();
if v == 0 goto label;
v = <org.springframework.expression.spel.ast.Indexer$IndexedType: org.springframework.expression.spel.ast.Indexer$IndexedType ARRAY>;
v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.Indexer$IndexedType indexedType> = v;
v = new org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef;
v = virtualinvoke v.<org.springframework.expression.spel.ExpressionState: org.springframework.expression.TypeConverter getTypeConverter()>();
specialinvoke v.<org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef: void <init>(org.springframework.expression.spel.ast.Indexer,org.springframework.expression.TypeConverter,java.lang.Object,int,org.springframework.core.convert.TypeDescriptor)>(v, v, v, v, v);
return v;
label:
v = v instanceof java.util.Collection;
if v == 0 goto label;
v = v instanceof java.util.List;
if v == 0 goto label;
v = <org.springframework.expression.spel.ast.Indexer$IndexedType: org.springframework.expression.spel.ast.Indexer$IndexedType LIST>;
v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.Indexer$IndexedType indexedType> = v;
label:
v = new org.springframework.expression.spel.ast.Indexer$CollectionIndexingValueRef;
v = virtualinvoke v.<org.springframework.expression.spel.ExpressionState: org.springframework.expression.TypeConverter getTypeConverter()>();
v = virtualinvoke v.<org.springframework.expression.spel.ExpressionState: org.springframework.expression.spel.SpelParserConfiguration getConfiguration()>();
v = virtualinvoke v.<org.springframework.expression.spel.SpelParserConfiguration: boolean isAutoGrowCollections()>();
v = virtualinvoke v.<org.springframework.expression.spel.ExpressionState: org.springframework.expression.spel.SpelParserConfiguration getConfiguration()>();
v = virtualinvoke v.<org.springframework.expression.spel.SpelParserConfiguration: int getMaximumAutoGrowSize()>();
specialinvoke v.<org.springframework.expression.spel.ast.Indexer$CollectionIndexingValueRef: void <init>(org.springframework.expression.spel.ast.Indexer,java.util.Collection,int,org.springframework.core.convert.TypeDescriptor,org.springframework.expression.TypeConverter,boolean,int)>(v, v, v, v, v, v, v);
return v;
label:
v = <org.springframework.expression.spel.ast.Indexer$IndexedType: org.springframework.expression.spel.ast.Indexer$IndexedType STRING>;
v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.Indexer$IndexedType indexedType> = v;
v = new org.springframework.expression.spel.ast.Indexer$StringIndexingLValue;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer$StringIndexingLValue: void <init>(org.springframework.expression.spel.ast.Indexer,java.lang.String,int,org.springframework.core.convert.TypeDescriptor)>(v, v, v, v);
return v;
label:
v = virtualinvoke v.<org.springframework.expression.TypedValue: org.springframework.core.convert.TypeDescriptor getTypeDescriptor()>();
v = virtualinvoke v.<org.springframework.core.convert.TypeDescriptor: java.lang.Class getType()>();
if class "Ljava/lang/String;" != v goto label;
v = <org.springframework.expression.spel.ast.Indexer$IndexedType: org.springframework.expression.spel.ast.Indexer$IndexedType OBJECT>;
v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.Indexer$IndexedType indexedType> = v;
v = new org.springframework.expression.spel.ast.Indexer$PropertyIndexingValueRef;
v = virtualinvoke v.<org.springframework.expression.spel.ExpressionState: org.springframework.expression.EvaluationContext getEvaluationContext()>();
specialinvoke v.<org.springframework.expression.spel.ast.Indexer$PropertyIndexingValueRef: void <init>(org.springframework.expression.spel.ast.Indexer,java.lang.Object,java.lang.String,org.springframework.expression.EvaluationContext,org.springframework.core.convert.TypeDescriptor)>(v, v, v, v, v);
return v;
label:
v = new org.springframework.expression.spel.SpelEvaluationException;
v = virtualinvoke v.<org.springframework.expression.spel.ast.Indexer: int getStartPosition()>();
v = <org.springframework.expression.spel.SpelMessage: org.springframework.expression.spel.SpelMessage INDEXING_NOT_SUPPORTED_FOR_TYPE>;
v = newarray (java.lang.Object)[1];
v[0] = v;
specialinvoke v.<org.springframework.expression.spel.SpelEvaluationException: void <init>(int,org.springframework.expression.spel.SpelMessage,java.lang.Object[])>(v, v, v);
throw v;
catch java.lang.Throwable from label to label with label;
}
public boolean isCompilable()
{
org.springframework.expression.PropertyAccessor v, v;
org.springframework.expression.spel.ast.Indexer v;
java.lang.String v;
boolean v, v, v, v, v, v, v, v;
org.springframework.expression.spel.ast.SpelNodeImpl[] v, v, v;
org.springframework.expression.spel.ast.Indexer$IndexedType v, v, v, v, v, v, v, v;
org.springframework.expression.spel.SpelNode v;
org.springframework.expression.spel.ast.SpelNodeImpl v, v, v;
v := @this: org.springframework.expression.spel.ast.Indexer;
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.Indexer$IndexedType indexedType>;
v = <org.springframework.expression.spel.ast.Indexer$IndexedType: org.springframework.expression.spel.ast.Indexer$IndexedType ARRAY>;
if v != v goto label;
v = v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.Indexer$IndexedType indexedType>;
v = <org.springframework.expression.spel.ast.Indexer$IndexedType: org.springframework.expression.spel.ast.Indexer$IndexedType LIST>;
if v != v goto label;
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.SpelNodeImpl[] children>;
v = v[0];
v = virtualinvoke v.<org.springframework.expression.spel.ast.SpelNodeImpl: boolean isCompilable()>();
return v;
label:
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.Indexer$IndexedType indexedType>;
v = <org.springframework.expression.spel.ast.Indexer$IndexedType: org.springframework.expression.spel.ast.Indexer$IndexedType MAP>;
if v != v goto label;
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.SpelNodeImpl[] children>;
v = v[0];
v = v instanceof org.springframework.expression.spel.ast.PropertyOrFieldReference;
if v != 0 goto label;
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.SpelNodeImpl[] children>;
v = v[0];
v = virtualinvoke v.<org.springframework.expression.spel.ast.SpelNodeImpl: boolean isCompilable()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.Indexer$IndexedType indexedType>;
v = <org.springframework.expression.spel.ast.Indexer$IndexedType: org.springframework.expression.spel.ast.Indexer$IndexedType OBJECT>;
if v != v goto label;
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.PropertyAccessor cachedReadAccessor>;
if v == null goto label;
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.PropertyAccessor cachedReadAccessor>;
v = v instanceof org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor;
if v == 0 goto label;
v = virtualinvoke v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.SpelNode getChild(int)>(0);
v = v instanceof org.springframework.expression.spel.ast.StringLiteral;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
return 0;
}
public void generateCode(org.springframework.asm.MethodVisitor, org.springframework.expression.spel.CodeFlow)
{
org.springframework.expression.PropertyAccessor v;
byte v;
java.lang.reflect.Member v;
org.springframework.expression.spel.ast.SpelNodeImpl[] v, v, v, v, v;
org.springframework.expression.spel.ast.Indexer$IndexedType v, v, v, v, v, v, v, v;
org.springframework.expression.spel.CodeFlow v;
org.springframework.expression.spel.ast.SpelNodeImpl v, v, v, v, v;
short v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.springframework.asm.MethodVisitor v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
org.springframework.expression.spel.ast.Indexer v;
int v;
java.lang.Class v, v;
v := @this: org.springframework.expression.spel.ast.Indexer;
v := @parameter: org.springframework.asm.MethodVisitor;
v := @parameter: org.springframework.expression.spel.CodeFlow;
v = virtualinvoke v.<org.springframework.expression.spel.CodeFlow: java.lang.String lastDescriptor()>();
if v != null goto label;
virtualinvoke v.<org.springframework.expression.spel.CodeFlow: void loadTarget(org.springframework.asm.MethodVisitor)>(v);
label:
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.Indexer$IndexedType indexedType>;
v = <org.springframework.expression.spel.ast.Indexer$IndexedType: org.springframework.expression.spel.ast.Indexer$IndexedType ARRAY>;
if v != v goto label;
v = "D";
v = v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitTypeInsn(int,java.lang.String)>(192, "[D");
v = 49;
goto label;
label:
v = "F";
v = v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitTypeInsn(int,java.lang.String)>(192, "[F");
v = 48;
goto label;
label:
v = "J";
v = v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitTypeInsn(int,java.lang.String)>(192, "[J");
v = 47;
goto label;
label:
v = "I";
v = v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitTypeInsn(int,java.lang.String)>(192, "[I");
v = 46;
goto label;
label:
v = "S";
v = v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitTypeInsn(int,java.lang.String)>(192, "[S");
v = 53;
goto label;
label:
v = "B";
v = v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitTypeInsn(int,java.lang.String)>(192, "[B");
v = 51;
goto label;
label:
v = "C";
v = v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitTypeInsn(int,java.lang.String)>(192, "[C");
v = 52;
goto label;
label:
v = v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor>;
v = v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor>;
v = staticinvoke <org.springframework.expression.spel.CodeFlow: boolean isPrimitiveArray(java.lang.String)>(v);
if v == 0 goto label;
v = "";
goto label;
label:
v = ";";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("[\u0001\u0001");
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitTypeInsn(int,java.lang.String)>(192, v);
v = 50;
label:
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.SpelNodeImpl[] children>;
v = v[0];
virtualinvoke v.<org.springframework.expression.spel.CodeFlow: void enterCompilationScope()>();
virtualinvoke v.<org.springframework.expression.spel.ast.SpelNodeImpl: void generateCode(org.springframework.asm.MethodVisitor,org.springframework.expression.spel.CodeFlow)>(v, v);
virtualinvoke v.<org.springframework.expression.spel.CodeFlow: void exitCompilationScope()>();
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitInsn(int)>(v);
goto label;
label:
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.Indexer$IndexedType indexedType>;
v = <org.springframework.expression.spel.ast.Indexer$IndexedType: org.springframework.expression.spel.ast.Indexer$IndexedType LIST>;
if v != v goto label;
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitTypeInsn(int,java.lang.String)>(192, "java/util/List");
virtualinvoke v.<org.springframework.expression.spel.CodeFlow: void enterCompilationScope()>();
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.SpelNodeImpl[] children>;
v = v[0];
virtualinvoke v.<org.springframework.expression.spel.ast.SpelNodeImpl: void generateCode(org.springframework.asm.MethodVisitor,org.springframework.expression.spel.CodeFlow)>(v, v);
virtualinvoke v.<org.springframework.expression.spel.CodeFlow: void exitCompilationScope()>();
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean)>(185, "java/util/List", "get", "(I)Ljava/lang/Object;", 1);
goto label;
label:
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.Indexer$IndexedType indexedType>;
v = <org.springframework.expression.spel.ast.Indexer$IndexedType: org.springframework.expression.spel.ast.Indexer$IndexedType MAP>;
if v != v goto label;
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitTypeInsn(int,java.lang.String)>(192, "java/util/Map");
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.SpelNodeImpl[] children>;
v = v[0];
v = v instanceof org.springframework.expression.spel.ast.PropertyOrFieldReference;
if v == 0 goto label;
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.SpelNodeImpl[] children>;
v = v[0];
v = virtualinvoke v.<org.springframework.expression.spel.ast.PropertyOrFieldReference: java.lang.String getName()>();
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitLdcInsn(java.lang.Object)>(v);
goto label;
label:
virtualinvoke v.<org.springframework.expression.spel.CodeFlow: void enterCompilationScope()>();
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.SpelNodeImpl[] children>;
v = v[0];
virtualinvoke v.<org.springframework.expression.spel.ast.SpelNodeImpl: void generateCode(org.springframework.asm.MethodVisitor,org.springframework.expression.spel.CodeFlow)>(v, v);
virtualinvoke v.<org.springframework.expression.spel.CodeFlow: void exitCompilationScope()>();
label:
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean)>(185, "java/util/Map", "get", "(Ljava/lang/Object;)Ljava/lang/Object;", 1);
goto label;
label:
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.ast.Indexer$IndexedType indexedType>;
v = <org.springframework.expression.spel.ast.Indexer$IndexedType: org.springframework.expression.spel.ast.Indexer$IndexedType OBJECT>;
if v != v goto label;
v = v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.PropertyAccessor cachedReadAccessor>;
v = v.<org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor: java.lang.reflect.Member member>;
v = interfaceinvoke v.<java.lang.reflect.Member: int getModifiers()>();
v = staticinvoke <java.lang.reflect.Modifier: boolean isStatic(int)>(v);
v = interfaceinvoke v.<java.lang.reflect.Member: java.lang.Class getDeclaringClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(46, 47);
if v != 0 goto label;
if v != null goto label;
virtualinvoke v.<org.springframework.expression.spel.CodeFlow: void loadTarget(org.springframework.asm.MethodVisitor)>(v);
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(1);
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
label:
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitTypeInsn(int,java.lang.String)>(192, v);
label:
v = v instanceof java.lang.reflect.Method;
if v == 0 goto label;
if v == 0 goto label;
v = 184;
goto label;
label:
v = 182;
label:
v = interfaceinvoke v.<java.lang.reflect.Member: java.lang.String getName()>();
v = staticinvoke <org.springframework.expression.spel.CodeFlow: java.lang.String createSignatureDescriptor(java.lang.reflect.Method)>(v);
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean)>(v, v, v, v, 0);
goto label;
label:
if v == 0 goto label;
v = 178;
goto label;
label:
v = 180;
label:
v = interfaceinvoke v.<java.lang.reflect.Member: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.Class getType()>();
v = staticinvoke <org.springframework.expression.spel.CodeFlow: java.lang.String toJvmDescriptor(java.lang.Class)>(v);
virtualinvoke v.<org.springframework.asm.MethodVisitor: void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, v);
label:
v = v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor>;
virtualinvoke v.<org.springframework.expression.spel.CodeFlow: void pushDescriptor(java.lang.String)>(v);
return;
}
public java.lang.String toStringAST()
{
org.springframework.expression.spel.ast.Indexer v;
int v, v;
java.lang.StringBuilder v;
java.lang.String v, v;
org.springframework.expression.spel.SpelNode v;
v := @this: org.springframework.expression.spel.ast.Indexer;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("[");
v = 0;
label:
v = virtualinvoke v.<org.springframework.expression.spel.ast.Indexer: int getChildCount()>();
if v >= v goto label;
if v <= 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(",");
label:
v = virtualinvoke v.<org.springframework.expression.spel.ast.Indexer: org.springframework.expression.spel.SpelNode getChild(int)>(v);
v = interfaceinvoke v.<org.springframework.expression.spel.SpelNode: java.lang.String toStringAST()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("]");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
private void setArrayElement(org.springframework.expression.TypeConverter, java.lang.Object, int, java.lang.Object, java.lang.Class) throws org.springframework.expression.EvaluationException
{
byte v;
boolean v;
org.springframework.expression.TypeConverter v;
float v;
long v;
short v;
org.springframework.expression.spel.ast.Indexer v;
int v, v, v, v, v, v, v, v, v, v, v;
double v;
char v;
java.lang.Class v, v, v, v, v, v, v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.springframework.expression.spel.ast.Indexer;
v := @parameter: org.springframework.expression.TypeConverter;
v := @parameter: java.lang.Object;
v := @parameter: int;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Class;
v = <java.lang.Boolean: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v = specialinvoke v.<org.springframework.expression.spel.ast.Indexer: java.lang.Object convertValue(org.springframework.expression.TypeConverter,java.lang.Object,java.lang.Class)>(v, v, class "Ljava/lang/Boolean;");
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
v[v] = v;
goto label;
label:
v = <java.lang.Byte: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v = specialinvoke v.<org.springframework.expression.spel.ast.Indexer: java.lang.Object convertValue(org.springframework.expression.TypeConverter,java.lang.Object,java.lang.Class)>(v, v, class "Ljava/lang/Byte;");
v = virtualinvoke v.<java.lang.Byte: byte byteValue()>();
v[v] = v;
goto label;
label:
v = <java.lang.Character: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v = specialinvoke v.<org.springframework.expression.spel.ast.Indexer: java.lang.Object convertValue(org.springframework.expression.TypeConverter,java.lang.Object,java.lang.Class)>(v, v, class "Ljava/lang/Character;");
v = virtualinvoke v.<java.lang.Character: char charValue()>();
v[v] = v;
goto label;
label:
v = <java.lang.Double: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v = specialinvoke v.<org.springframework.expression.spel.ast.Indexer: java.lang.Object convertValue(org.springframework.expression.TypeConverter,java.lang.Object,java.lang.Class)>(v, v, class "Ljava/lang/Double;");
v = virtualinvoke v.<java.lang.Double: double doubleValue()>();
v[v] = v;
goto label;
label:
v = <java.lang.Float: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v = specialinvoke v.<org.springframework.expression.spel.ast.Indexer: java.lang.Object convertValue(org.springframework.expression.TypeConverter,java.lang.Object,java.lang.Class)>(v, v, class "Ljava/lang/Float;");
v = virtualinvoke v.<java.lang.Float: float floatValue()>();
v[v] = v;
goto label;
label:
v = <java.lang.Integer: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v = specialinvoke v.<org.springframework.expression.spel.ast.Indexer: java.lang.Object convertValue(org.springframework.expression.TypeConverter,java.lang.Object,java.lang.Class)>(v, v, class "Ljava/lang/Integer;");
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v[v] = v;
goto label;
label:
v = <java.lang.Long: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v = specialinvoke v.<org.springframework.expression.spel.ast.Indexer: java.lang.Object convertValue(org.springframework.expression.TypeConverter,java.lang.Object,java.lang.Class)>(v, v, class "Ljava/lang/Long;");
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v[v] = v;
goto label;
label:
v = <java.lang.Short: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v = specialinvoke v.<org.springframework.expression.spel.ast.Indexer: java.lang.Object convertValue(org.springframework.expression.TypeConverter,java.lang.Object,java.lang.Class)>(v, v, class "Ljava/lang/Short;");
v = virtualinvoke v.<java.lang.Short: short shortValue()>();
v[v] = v;
goto label;
label:
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v = specialinvoke v.<org.springframework.expression.spel.ast.Indexer: java.lang.Object convertValue(org.springframework.expression.TypeConverter,java.lang.Object,java.lang.Class)>(v, v, v);
v[v] = v;
label:
return;
}
private java.lang.Object accessArrayElement(java.lang.Object, int) throws org.springframework.expression.spel.SpelEvaluationException
{
java.lang.Float v;
java.lang.Integer v;
byte v;
java.lang.Character v;
java.lang.Long v;
java.lang.Short v;
java.lang.Byte v;
boolean v;
float v;
java.lang.Double v;
long v;
short v;
org.springframework.expression.spel.ast.Indexer v;
int v, v, v, v, v, v, v, v, v, v, v;
java.lang.Boolean v;
java.lang.String v;
double v;
char v;
java.lang.Class v, v, v, v, v, v, v, v, v, v;
java.lang.Object v, v;
v := @this: org.springframework.expression.spel.ast.Indexer;
v := @parameter: java.lang.Object;
v := @parameter: int;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.Class getComponentType()>();
v = <java.lang.Boolean: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor> = "Z";
v = v[v];
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
return v;
label:
v = <java.lang.Byte: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor> = "B";
v = v[v];
v = staticinvoke <java.lang.Byte: java.lang.Byte valueOf(byte)>(v);
return v;
label:
v = <java.lang.Character: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor> = "C";
v = v[v];
v = staticinvoke <java.lang.Character: java.lang.Character valueOf(char)>(v);
return v;
label:
v = <java.lang.Double: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor> = "D";
v = v[v];
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(v);
return v;
label:
v = <java.lang.Float: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor> = "F";
v = v[v];
v = staticinvoke <java.lang.Float: java.lang.Float valueOf(float)>(v);
return v;
label:
v = <java.lang.Integer: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor> = "I";
v = v[v];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
return v;
label:
v = <java.lang.Long: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor> = "J";
v = v[v];
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
return v;
label:
v = <java.lang.Short: java.lang.Class TYPE>;
if v != v goto label;
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor> = "S";
v = v[v];
v = staticinvoke <java.lang.Short: java.lang.Short valueOf(short)>(v);
return v;
label:
v = lengthof v;
specialinvoke v.<org.springframework.expression.spel.ast.Indexer: void checkAccess(int,int)>(v, v);
v = v[v];
v = staticinvoke <org.springframework.expression.spel.CodeFlow: java.lang.String toDescriptor(java.lang.Class)>(v);
v.<org.springframework.expression.spel.ast.Indexer: java.lang.String exitTypeDescriptor> = v;
return v;
}
private void checkAccess(int, int) throws org.springframework.expression.spel.SpelEvaluationException
{
org.springframework.expression.spel.SpelEvaluationException v;
org.springframework.expression.spel.SpelMessage v;
java.lang.Object[] v;
java.lang.Integer v, v;
org.springframework.expression.spel.ast.Indexer v;
int v, v, v;
v := @this: org.springframework.expression.spel.ast.Indexer;
v := @parameter: int;
v := @parameter: int;
if v <= v goto label;
v = new org.springframework.expression.spel.SpelEvaluationException;
v = virtualinvoke v.<org.springframework.expression.spel.ast.Indexer: int getStartPosition()>();
v = <org.springframework.expression.spel.SpelMessage: org.springframework.expression.spel.SpelMessage ARRAY_INDEX_OUT_OF_BOUNDS>;
v = newarray (java.lang.Object)[2];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
specialinvoke v.<org.springframework.expression.spel.SpelEvaluationException: void <init>(int,org.springframework.expression.spel.SpelMessage,java.lang.Object[])>(v, v, v);
throw v;
label:
return;
}
private java.lang.Object convertValue(org.springframework.expression.TypeConverter, java.lang.Object, java.lang.Class)
{
org.springframework.expression.spel.ast.Indexer v;
org.springframework.core.convert.TypeDescriptor v, v;
org.springframework.expression.TypeConverter v;
java.lang.Class v;
java.lang.Object v, v;
v := @this: org.springframework.expression.spel.ast.Indexer;
v := @parameter: org.springframework.expression.TypeConverter;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Class;
v = staticinvoke <org.springframework.core.convert.TypeDescriptor: org.springframework.core.convert.TypeDescriptor forObject(java.lang.Object)>(v);
v = staticinvoke <org.springframework.core.convert.TypeDescriptor: org.springframework.core.convert.TypeDescriptor valueOf(java.lang.Class)>(v);
v = interfaceinvoke v.<org.springframework.expression.TypeConverter: java.lang.Object convertValue(java.lang.Object,org.springframework.core.convert.TypeDescriptor,org.springframework.core.convert.TypeDescriptor)>(v, v, v);
return v;
}
}