abstract class freemarker.core.BuiltInsForSequences$MinOrMaxBI extends freemarker.core.BuiltIn
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: freemarker.core.BuiltInsForSequences$MinOrMaxBI
super_class: freemarker.core.BuiltIn
{
private final int comparatorOperator;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected void <init>(int);
descriptor: (I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial freemarker.core.BuiltIn.<init>:()V
1: aload 0
iload 1
putfield freemarker.core.BuiltInsForSequences$MinOrMaxBI.comparatorOperator:I
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lfreemarker/core/BuiltInsForSequences$MinOrMaxBI;
0 3 1 comparatorOperator I
MethodParameters:
Name Flags
comparatorOperator
freemarker.template.TemplateModel _eval(freemarker.core.Environment);
descriptor: (Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield freemarker.core.BuiltInsForSequences$MinOrMaxBI.target:Lfreemarker/core/Expression;
aload 1
invokevirtual freemarker.core.Expression.eval:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
astore 2
start local 2 1: aload 2
instanceof freemarker.template.TemplateCollectionModel
ifeq 3
2: aload 0
aload 2
checkcast freemarker.template.TemplateCollectionModel
aload 1
invokevirtual freemarker.core.BuiltInsForSequences$MinOrMaxBI.calculateResultForColletion:(Lfreemarker/template/TemplateCollectionModel;Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
areturn
3: StackMap locals: freemarker.template.TemplateModel
StackMap stack:
aload 2
instanceof freemarker.template.TemplateSequenceModel
ifeq 5
4: aload 0
aload 2
checkcast freemarker.template.TemplateSequenceModel
aload 1
invokevirtual freemarker.core.BuiltInsForSequences$MinOrMaxBI.calculateResultForSequence:(Lfreemarker/template/TemplateSequenceModel;Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
areturn
5: StackMap locals:
StackMap stack:
new freemarker.core.NonSequenceOrCollectionException
dup
aload 0
getfield freemarker.core.BuiltInsForSequences$MinOrMaxBI.target:Lfreemarker/core/Expression;
aload 2
aload 1
invokespecial freemarker.core.NonSequenceOrCollectionException.<init>:(Lfreemarker/core/Expression;Lfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lfreemarker/core/BuiltInsForSequences$MinOrMaxBI;
0 6 1 env Lfreemarker/core/Environment;
1 6 2 model Lfreemarker/template/TemplateModel;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
env
private freemarker.template.TemplateModel calculateResultForColletion(freemarker.template.TemplateCollectionModel, freemarker.core.Environment);
descriptor: (Lfreemarker/template/TemplateCollectionModel;Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
flags: (0x0002) ACC_PRIVATE
Code:
stack=12, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 1
invokeinterface freemarker.template.TemplateCollectionModel.iterator:()Lfreemarker/template/TemplateModelIterator;
astore 4
start local 4 2: goto 10
3: StackMap locals: freemarker.template.TemplateModel freemarker.template.TemplateModelIterator
StackMap stack:
aload 4
invokeinterface freemarker.template.TemplateModelIterator.next:()Lfreemarker/template/TemplateModel;
astore 5
start local 5 4: aload 5
ifnull 10
5: aload 3
ifnull 9
aload 5
aconst_null
aload 0
getfield freemarker.core.BuiltInsForSequences$MinOrMaxBI.comparatorOperator:I
aconst_null
aload 3
6: aconst_null
aload 0
iconst_1
iconst_0
iconst_0
iconst_0
aload 2
7: 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
8: ifeq 10
9: StackMap locals: freemarker.template.TemplateModel
StackMap stack:
aload 5
astore 3
end local 5 10: StackMap locals:
StackMap stack:
aload 4
invokeinterface freemarker.template.TemplateModelIterator.hasNext:()Z
ifne 3
11: aload 3
areturn
end local 4 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$MinOrMaxBI;
0 12 1 coll Lfreemarker/template/TemplateCollectionModel;
0 12 2 env Lfreemarker/core/Environment;
1 12 3 best Lfreemarker/template/TemplateModel;
2 12 4 iter Lfreemarker/template/TemplateModelIterator;
4 10 5 cur Lfreemarker/template/TemplateModel;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
coll
env
private freemarker.template.TemplateModel calculateResultForSequence(freemarker.template.TemplateSequenceModel, freemarker.core.Environment);
descriptor: (Lfreemarker/template/TemplateSequenceModel;Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
flags: (0x0002) ACC_PRIVATE
Code:
stack=12, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 11
3: StackMap locals: freemarker.template.TemplateModel int
StackMap stack:
aload 1
iload 4
invokeinterface freemarker.template.TemplateSequenceModel.get:(I)Lfreemarker/template/TemplateModel;
astore 5
start local 5 4: aload 5
ifnull 10
5: aload 3
ifnull 9
aload 5
aconst_null
aload 0
getfield freemarker.core.BuiltInsForSequences$MinOrMaxBI.comparatorOperator:I
aconst_null
aload 3
6: aconst_null
aload 0
iconst_1
iconst_0
iconst_0
iconst_0
aload 2
7: 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
8: ifeq 10
9: StackMap locals: freemarker.template.TemplateModel
StackMap stack:
aload 5
astore 3
end local 5 10: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
11: iload 4
aload 1
invokeinterface freemarker.template.TemplateSequenceModel.size:()I
if_icmplt 3
end local 4 12: aload 3
areturn
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$MinOrMaxBI;
0 13 1 seq Lfreemarker/template/TemplateSequenceModel;
0 13 2 env Lfreemarker/core/Environment;
1 13 3 best Lfreemarker/template/TemplateModel;
2 12 4 i I
4 10 5 cur Lfreemarker/template/TemplateModel;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
seq
env
}
SourceFile: "BuiltInsForSequences.java"
NestHost: freemarker.core.BuiltInsForSequences
InnerClasses:
private abstract MinOrMaxBI = freemarker.core.BuiltInsForSequences$MinOrMaxBI of freemarker.core.BuiltInsForSequences