class freemarker.core.BuiltInsWithParseTimeParameters$switch_BI extends freemarker.core.BuiltInWithParseTimeParameters
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.core.BuiltInsWithParseTimeParameters$switch_BI
super_class: freemarker.core.BuiltInWithParseTimeParameters
{
private java.util.List parameters;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial freemarker.core.BuiltInWithParseTimeParameters.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/BuiltInsWithParseTimeParameters$switch_BI;
void bindToParameters(java.util.List, freemarker.core.Token, freemarker.core.Token);
descriptor: (Ljava/util/List;Lfreemarker/core/Token;Lfreemarker/core/Token;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokeinterface java.util.List.size:()I
iconst_2
if_icmpge 2
1: aload 0
ldc "must have at least 2"
aload 2
aload 3
invokevirtual freemarker.core.BuiltInsWithParseTimeParameters$switch_BI.newArgumentCountException:(Ljava/lang/String;Lfreemarker/core/Token;Lfreemarker/core/Token;)Lfreemarker/core/ParseException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield freemarker.core.BuiltInsWithParseTimeParameters$switch_BI.parameters:Ljava/util/List;
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lfreemarker/core/BuiltInsWithParseTimeParameters$switch_BI;
0 4 1 parameters Ljava/util/List;
0 4 2 openParen Lfreemarker/core/Token;
0 4 3 closeParen Lfreemarker/core/Token;
Exceptions:
throws freemarker.core.ParseException
MethodParameters:
Name Flags
parameters
openParen
closeParen
protected java.util.List getArgumentsAsList();
descriptor: ()Ljava/util/List;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.core.BuiltInsWithParseTimeParameters$switch_BI.parameters:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/BuiltInsWithParseTimeParameters$switch_BI;
protected int getArgumentsCount();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.core.BuiltInsWithParseTimeParameters$switch_BI.parameters:Ljava/util/List;
invokeinterface java.util.List.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/BuiltInsWithParseTimeParameters$switch_BI;
protected freemarker.core.Expression getArgumentParameterValue(int);
descriptor: (I)Lfreemarker/core/Expression;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield freemarker.core.BuiltInsWithParseTimeParameters$switch_BI.parameters:Ljava/util/List;
iload 1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast freemarker.core.Expression
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/BuiltInsWithParseTimeParameters$switch_BI;
0 1 1 argIdx I
MethodParameters:
Name Flags
argIdx
protected void cloneArguments(freemarker.core.Expression, java.lang.String, freemarker.core.Expression, freemarker.core.Expression$ReplacemenetState);
descriptor: (Lfreemarker/core/Expression;Ljava/lang/String;Lfreemarker/core/Expression;Lfreemarker/core/Expression$ReplacemenetState;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new java.util.ArrayList
dup
aload 0
getfield freemarker.core.BuiltInsWithParseTimeParameters$switch_BI.parameters:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 5
start local 5 1: iconst_0
istore 6
start local 6 2: goto 7
3: StackMap locals: java.util.ArrayList int
StackMap stack:
aload 5
aload 0
getfield freemarker.core.BuiltInsWithParseTimeParameters$switch_BI.parameters:Ljava/util/List;
iload 6
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast freemarker.core.Expression
4: aload 2
aload 3
aload 4
invokevirtual freemarker.core.Expression.deepCloneWithIdentifierReplaced:(Ljava/lang/String;Lfreemarker/core/Expression;Lfreemarker/core/Expression$ReplacemenetState;)Lfreemarker/core/Expression;
5: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
6: iinc 6 1
StackMap locals:
StackMap stack:
7: iload 6
aload 0
getfield freemarker.core.BuiltInsWithParseTimeParameters$switch_BI.parameters:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 3
end local 6 8: aload 1
checkcast freemarker.core.BuiltInsWithParseTimeParameters$switch_BI
aload 5
putfield freemarker.core.BuiltInsWithParseTimeParameters$switch_BI.parameters:Ljava/util/List;
9: return
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 10 0 this Lfreemarker/core/BuiltInsWithParseTimeParameters$switch_BI;
0 10 1 clone Lfreemarker/core/Expression;
0 10 2 replacedIdentifier Ljava/lang/String;
0 10 3 replacement Lfreemarker/core/Expression;
0 10 4 replacementState Lfreemarker/core/Expression$ReplacemenetState;
1 10 5 parametersClone Ljava/util/ArrayList;
2 8 6 i I
MethodParameters:
Name Flags
clone
replacedIdentifier
replacement
replacementState
freemarker.template.TemplateModel _eval(freemarker.core.Environment);
descriptor: (Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
flags: (0x0000)
Code:
stack=12, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield freemarker.core.BuiltInsWithParseTimeParameters$switch_BI.target:Lfreemarker/core/Expression;
aload 1
invokevirtual freemarker.core.Expression.evalToNonMissing:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
astore 2
start local 2 1: aload 0
getfield freemarker.core.BuiltInsWithParseTimeParameters$switch_BI.parameters:Ljava/util/List;
astore 3
start local 3 2: aload 3
invokeinterface java.util.List.size:()I
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 17
5: StackMap locals: freemarker.core.BuiltInsWithParseTimeParameters$switch_BI freemarker.core.Environment freemarker.template.TemplateModel java.util.List int int
StackMap stack:
aload 3
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast freemarker.core.Expression
astore 6
start local 6 6: aload 6
aload 1
invokevirtual freemarker.core.Expression.evalToNonMissing:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
astore 7
start local 7 7: aload 2
aload 0
getfield freemarker.core.BuiltInsWithParseTimeParameters$switch_BI.target:Lfreemarker/core/Expression;
8: iconst_1
ldc "=="
9: aload 7
aload 6
10: aload 0
iconst_1
11: iconst_0
iconst_0
iconst_0
12: aload 1
13: invokestatic freemarker.core.EvalUtil.compare:(Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;ILjava/lang/String;Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;Lfreemarker/core/Expression;ZZZZLfreemarker/core/Environment;)Z
14: ifeq 16
15: aload 3
iload 5
iconst_1
iadd
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast freemarker.core.Expression
aload 1
invokevirtual freemarker.core.Expression.evalToNonMissing:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
areturn
end local 7 end local 6 16: StackMap locals:
StackMap stack:
iinc 5 2
StackMap locals:
StackMap stack:
17: iload 5
iconst_1
iadd
iload 4
if_icmplt 5
end local 5 18: iload 4
iconst_2
irem
ifne 22
19: new freemarker.core._MiscTemplateException
dup
aload 0
getfield freemarker.core.BuiltInsWithParseTimeParameters$switch_BI.target:Lfreemarker/core/Expression;
iconst_3
anewarray java.lang.Object
dup
iconst_0
20: ldc "The value before ?"
aastore
dup
iconst_1
aload 0
getfield freemarker.core.BuiltInsWithParseTimeParameters$switch_BI.key:Ljava/lang/String;
aastore
dup
iconst_2
ldc "(case1, value1, case2, value2, ...) didn't match any of the case parameters, and there was no default value parameter (an additional last parameter) eithter. "
21: aastore
invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Expression;[Ljava/lang/Object;)V
athrow
22: StackMap locals:
StackMap stack:
aload 3
iload 4
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast freemarker.core.Expression
aload 1
invokevirtual freemarker.core.Expression.evalToNonMissing:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lfreemarker/core/BuiltInsWithParseTimeParameters$switch_BI;
0 23 1 env Lfreemarker/core/Environment;
1 23 2 targetValue Lfreemarker/template/TemplateModel;
2 23 3 parameters Ljava/util/List;
3 23 4 paramCnt I
4 18 5 i I
6 16 6 caseExp Lfreemarker/core/Expression;
7 16 7 caseValue Lfreemarker/template/TemplateModel;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
env
}
SourceFile: "BuiltInsWithParseTimeParameters.java"
NestHost: freemarker.core.BuiltInsWithParseTimeParameters
InnerClasses:
switch_BI = freemarker.core.BuiltInsWithParseTimeParameters$switch_BI of freemarker.core.BuiltInsWithParseTimeParameters
ReplacemenetState = freemarker.core.Expression$ReplacemenetState of freemarker.core.Expression