class freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod implements freemarker.template.TemplateMethodModelEx
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod
super_class: java.lang.Object
{
protected final freemarker.template.TemplateSequenceModel m_seq;
descriptor: Lfreemarker/template/TemplateSequenceModel;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final freemarker.template.TemplateCollectionModel m_col;
descriptor: Lfreemarker/template/TemplateCollectionModel;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final freemarker.core.Environment m_env;
descriptor: Lfreemarker/core/Environment;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
final freemarker.core.BuiltInsForSequences$seq_index_ofBI this$1;
descriptor: Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(freemarker.core.BuiltInsForSequences$seq_index_ofBI, freemarker.core.Environment);
descriptor: (Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI;Lfreemarker/core/Environment;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.this$1:Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI;
1: aload 0
invokespecial java.lang.Object.<init>:()V
2: aload 1
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI.target:Lfreemarker/core/Expression;
aload 2
invokevirtual freemarker.core.Expression.eval:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
astore 3
start local 3 3: aload 0
aload 3
instanceof freemarker.template.TemplateSequenceModel
ifeq 6
4: aload 3
invokestatic freemarker.core.BuiltInsForSequences.isBuggySeqButGoodCollection:(Lfreemarker/template/TemplateModel;)Z
ifne 6
5: aload 3
checkcast freemarker.template.TemplateSequenceModel
goto 7
6: StackMap locals: freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod freemarker.core.BuiltInsForSequences$seq_index_ofBI freemarker.core.Environment freemarker.template.TemplateModel
StackMap stack: freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod
aconst_null
7: StackMap locals: freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod freemarker.core.BuiltInsForSequences$seq_index_ofBI freemarker.core.Environment freemarker.template.TemplateModel
StackMap stack: freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod freemarker.template.TemplateSequenceModel
putfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_seq:Lfreemarker/template/TemplateSequenceModel;
8: aload 0
aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_seq:Lfreemarker/template/TemplateSequenceModel;
ifnonnull 10
aload 3
instanceof freemarker.template.TemplateCollectionModel
ifeq 10
9: aload 3
checkcast freemarker.template.TemplateCollectionModel
goto 11
10: StackMap locals:
StackMap stack: freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod
aconst_null
11: StackMap locals: freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod freemarker.core.BuiltInsForSequences$seq_index_ofBI freemarker.core.Environment freemarker.template.TemplateModel
StackMap stack: freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod freemarker.template.TemplateCollectionModel
putfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_col:Lfreemarker/template/TemplateCollectionModel;
12: aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_seq:Lfreemarker/template/TemplateSequenceModel;
ifnonnull 14
aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_col:Lfreemarker/template/TemplateCollectionModel;
ifnonnull 14
13: new freemarker.core.NonSequenceOrCollectionException
dup
aload 1
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI.target:Lfreemarker/core/Expression;
aload 3
aload 2
invokespecial freemarker.core.NonSequenceOrCollectionException.<init>:(Lfreemarker/core/Expression;Lfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)V
athrow
14: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_env:Lfreemarker/core/Environment;
15: return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI$BIMethod;
0 16 2 env Lfreemarker/core/Environment;
3 16 3 model Lfreemarker/template/TemplateModel;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
this$0 final
env
public final java.lang.Object exec(java.util.List);
descriptor: (Ljava/util/List;)Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.List.size:()I
istore 2
start local 2 1: aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.this$1:Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI;
iload 2
iconst_1
iconst_2
invokevirtual freemarker.core.BuiltInsForSequences$seq_index_ofBI.checkMethodArgCount:(III)V
2: aload 1
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast freemarker.template.TemplateModel
astore 3
start local 3 3: iload 2
iconst_1
if_icmple 10
4: aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.this$1:Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI;
aload 1
iconst_1
invokevirtual freemarker.core.BuiltInsForSequences$seq_index_ofBI.getNumberMethodArg:(Ljava/util/List;I)Ljava/lang/Number;
invokevirtual java.lang.Number.intValue:()I
istore 5
start local 5 5: aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_seq:Lfreemarker/template/TemplateSequenceModel;
ifnull 7
6: aload 0
aload 3
iload 5
invokevirtual freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.findInSeq:(Lfreemarker/template/TemplateModel;I)I
goto 8
7: StackMap locals: freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod java.util.List int freemarker.template.TemplateModel top int
StackMap stack:
aload 0
aload 3
iload 5
invokevirtual freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.findInCol:(Lfreemarker/template/TemplateModel;I)I
8: StackMap locals:
StackMap stack: int
istore 4
end local 5 start local 4 9: goto 14
end local 4 10: StackMap locals: freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod java.util.List int freemarker.template.TemplateModel
StackMap stack:
aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_seq:Lfreemarker/template/TemplateSequenceModel;
ifnull 12
11: aload 0
aload 3
invokevirtual freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.findInSeq:(Lfreemarker/template/TemplateModel;)I
goto 13
12: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.findInCol:(Lfreemarker/template/TemplateModel;)I
13: StackMap locals:
StackMap stack: int
istore 4
start local 4 14: StackMap locals: int
StackMap stack:
iload 4
iconst_m1
if_icmpne 15
getstatic freemarker.template.utility.Constants.MINUS_ONE:Lfreemarker/template/TemplateNumberModel;
goto 16
StackMap locals:
StackMap stack:
15: new freemarker.template.SimpleNumber
dup
iload 4
invokespecial freemarker.template.SimpleNumber.<init>:(I)V
StackMap locals:
StackMap stack: freemarker.template.TemplateNumberModel
16: areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI$BIMethod;
0 17 1 args Ljava/util/List;
1 17 2 argCnt I
3 17 3 searched Lfreemarker/template/TemplateModel;
9 10 4 foundAtIdx I
14 17 4 foundAtIdx I
5 9 5 startIndex I
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
args
int findInCol(freemarker.template.TemplateModel);
descriptor: (Lfreemarker/template/TemplateModel;)I
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
ldc 2147483647
invokevirtual freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.findInCol:(Lfreemarker/template/TemplateModel;II)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI$BIMethod;
0 1 1 searched Lfreemarker/template/TemplateModel;
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
searched
protected int findInCol(freemarker.template.TemplateModel, int);
descriptor: (Lfreemarker/template/TemplateModel;I)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.this$1:Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI;
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI.findFirst:Z
ifeq 2
1: aload 0
aload 1
iload 2
ldc 2147483647
invokevirtual freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.findInCol:(Lfreemarker/template/TemplateModel;II)I
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
iload 2
invokevirtual freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.findInCol:(Lfreemarker/template/TemplateModel;II)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI$BIMethod;
0 3 1 searched Lfreemarker/template/TemplateModel;
0 3 2 startIndex I
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
searched
startIndex
protected int findInCol(freemarker.template.TemplateModel, int, int);
descriptor: (Lfreemarker/template/TemplateModel;II)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
ifge 1
iconst_m1
ireturn
1: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_col:Lfreemarker/template/TemplateCollectionModel;
invokeinterface freemarker.template.TemplateCollectionModel.iterator:()Lfreemarker/template/TemplateModelIterator;
astore 4
start local 4 2: iconst_m1
istore 5
start local 5 3: iconst_0
istore 6
start local 6 4: goto 13
5: StackMap locals: freemarker.template.TemplateModelIterator int int
StackMap stack:
iload 6
iload 3
if_icmple 6
goto 14
6: StackMap locals:
StackMap stack:
aload 4
invokeinterface freemarker.template.TemplateModelIterator.next:()Lfreemarker/template/TemplateModel;
astore 7
start local 7 7: iload 6
iload 2
if_icmplt 12
8: iload 6
aload 7
aload 1
aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_env:Lfreemarker/core/Environment;
invokestatic freemarker.core.BuiltInsForSequences.modelsEqual:(ILfreemarker/template/TemplateModel;Lfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)Z
ifeq 12
9: iload 6
istore 5
10: aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.this$1:Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI;
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI.findFirst:Z
ifeq 12
11: goto 14
12: StackMap locals: freemarker.template.TemplateModel
StackMap stack:
iinc 6 1
end local 7 13: StackMap locals:
StackMap stack:
aload 4
invokeinterface freemarker.template.TemplateModelIterator.hasNext:()Z
ifne 5
14: StackMap locals:
StackMap stack:
iload 5
ireturn
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 15 0 this Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI$BIMethod;
0 15 1 searched Lfreemarker/template/TemplateModel;
0 15 2 allowedRangeStart I
0 15 3 allowedRangeEnd I
2 15 4 it Lfreemarker/template/TemplateModelIterator;
3 15 5 foundAtIdx I
4 15 6 idx I
7 13 7 current Lfreemarker/template/TemplateModel;
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
searched
allowedRangeStart final
allowedRangeEnd final
int findInSeq(freemarker.template.TemplateModel);
descriptor: (Lfreemarker/template/TemplateModel;)I
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_seq:Lfreemarker/template/TemplateSequenceModel;
invokeinterface freemarker.template.TemplateSequenceModel.size:()I
istore 2
start local 2 1: aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.this$1:Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI;
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI.findFirst:Z
ifeq 4
2: iconst_0
istore 3
start local 3 3: goto 5
end local 3 4: StackMap locals: int
StackMap stack:
iload 2
iconst_1
isub
istore 3
start local 3 5: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 3
iload 2
invokevirtual freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.findInSeq:(Lfreemarker/template/TemplateModel;II)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI$BIMethod;
0 6 1 searched Lfreemarker/template/TemplateModel;
1 6 2 seqSize I
3 4 3 actualStartIndex I
5 6 3 actualStartIndex I
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
searched
private int findInSeq(freemarker.template.TemplateModel, int);
descriptor: (Lfreemarker/template/TemplateModel;I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_seq:Lfreemarker/template/TemplateSequenceModel;
invokeinterface freemarker.template.TemplateSequenceModel.size:()I
istore 3
start local 3 1: aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.this$1:Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI;
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI.findFirst:Z
ifeq 7
2: iload 2
iload 3
if_icmplt 4
3: iconst_m1
ireturn
4: StackMap locals: int
StackMap stack:
iload 2
ifge 11
5: iconst_0
istore 2
6: goto 11
7: StackMap locals:
StackMap stack:
iload 2
iload 3
if_icmplt 9
8: iload 3
iconst_1
isub
istore 2
9: StackMap locals:
StackMap stack:
iload 2
ifge 11
10: iconst_m1
ireturn
11: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
invokevirtual freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.findInSeq:(Lfreemarker/template/TemplateModel;II)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI$BIMethod;
0 12 1 searched Lfreemarker/template/TemplateModel;
0 12 2 startIndex I
1 12 3 seqSize I
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
searched
startIndex
private int findInSeq(freemarker.template.TemplateModel, int, int);
descriptor: (Lfreemarker/template/TemplateModel;II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.this$1:Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI;
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI.findFirst:Z
ifeq 7
1: iload 2
istore 4
start local 4 2: goto 5
3: StackMap locals: int
StackMap stack:
iload 4
aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_seq:Lfreemarker/template/TemplateSequenceModel;
iload 4
invokeinterface freemarker.template.TemplateSequenceModel.get:(I)Lfreemarker/template/TemplateModel;
aload 1
aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_env:Lfreemarker/core/Environment;
invokestatic freemarker.core.BuiltInsForSequences.modelsEqual:(ILfreemarker/template/TemplateModel;Lfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)Z
ifeq 4
iload 4
ireturn
4: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
iload 3
if_icmplt 3
end local 4 6: goto 12
7: StackMap locals:
StackMap stack:
iload 2
istore 4
start local 4 8: goto 11
9: StackMap locals: int
StackMap stack:
iload 4
aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_seq:Lfreemarker/template/TemplateSequenceModel;
iload 4
invokeinterface freemarker.template.TemplateSequenceModel.get:(I)Lfreemarker/template/TemplateModel;
aload 1
aload 0
getfield freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod.m_env:Lfreemarker/core/Environment;
invokestatic freemarker.core.BuiltInsForSequences.modelsEqual:(ILfreemarker/template/TemplateModel;Lfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)Z
ifeq 10
iload 4
ireturn
10: StackMap locals:
StackMap stack:
iinc 4 -1
StackMap locals:
StackMap stack:
11: iload 4
ifge 9
end local 4 12: StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lfreemarker/core/BuiltInsForSequences$seq_index_ofBI$BIMethod;
0 13 1 target Lfreemarker/template/TemplateModel;
0 13 2 scanStartIndex I
0 13 3 seqSize I
2 6 4 i I
8 12 4 i I
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
target
scanStartIndex
seqSize
}
SourceFile: "BuiltInsForSequences.java"
NestHost: freemarker.core.BuiltInsForSequences
InnerClasses:
seq_index_ofBI = freemarker.core.BuiltInsForSequences$seq_index_ofBI of freemarker.core.BuiltInsForSequences
private BIMethod = freemarker.core.BuiltInsForSequences$seq_index_ofBI$BIMethod of freemarker.core.BuiltInsForSequences$seq_index_ofBI