class freemarker.core.EvalUtil
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.core.EvalUtil
super_class: java.lang.Object
{
static final int CMP_OP_EQUALS;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int CMP_OP_NOT_EQUALS;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final int CMP_OP_LESS_THAN;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
static final int CMP_OP_GREATER_THAN;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4
static final int CMP_OP_LESS_THAN_EQUALS;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 5
static final int CMP_OP_GREATER_THAN_EQUALS;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 6
private static final java.lang.String VALUE_OF_THE_COMPARISON_IS_UNKNOWN_DATE_LIKE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "value of the comparison is a date-like value where it's not known if it's a date (no time part), time, or date-time, and thus can't be used in a comparison."
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/EvalUtil;
static java.lang.String modelToString(freemarker.template.TemplateScalarModel, freemarker.core.Expression, freemarker.core.Environment);
descriptor: (Lfreemarker/template/TemplateScalarModel;Lfreemarker/core/Expression;Lfreemarker/core/Environment;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokeinterface freemarker.template.TemplateScalarModel.getAsString:()Ljava/lang/String;
astore 3
start local 3 1: aload 3
ifnonnull 6
2: aload 2
ifnonnull 3
invokestatic freemarker.core.Environment.getCurrentEnvironment:()Lfreemarker/core/Environment;
astore 2
3: StackMap locals: java.lang.String
StackMap stack:
aload 2
ifnull 5
aload 2
invokevirtual freemarker.core.Environment.isClassicCompatible:()Z
ifeq 5
4: ldc ""
areturn
5: StackMap locals:
StackMap stack:
ldc Ljava/lang/String;
aload 0
aload 1
invokestatic freemarker.core.EvalUtil.newModelHasStoredNullException:(Ljava/lang/Class;Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;)Lfreemarker/template/TemplateModelException;
athrow
6: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 model Lfreemarker/template/TemplateScalarModel;
0 7 1 expr Lfreemarker/core/Expression;
0 7 2 env Lfreemarker/core/Environment;
1 7 3 value Ljava/lang/String;
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
model
expr
env
static java.lang.Number modelToNumber(freemarker.template.TemplateNumberModel, freemarker.core.Expression);
descriptor: (Lfreemarker/template/TemplateNumberModel;Lfreemarker/core/Expression;)Ljava/lang/Number;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface freemarker.template.TemplateNumberModel.getAsNumber:()Ljava/lang/Number;
astore 2
start local 2 1: aload 2
ifnonnull 2
ldc Ljava/lang/Number;
aload 0
aload 1
invokestatic freemarker.core.EvalUtil.newModelHasStoredNullException:(Ljava/lang/Class;Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;)Lfreemarker/template/TemplateModelException;
athrow
2: StackMap locals: java.lang.Number
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 model Lfreemarker/template/TemplateNumberModel;
0 3 1 expr Lfreemarker/core/Expression;
1 3 2 value Ljava/lang/Number;
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
model
expr
static java.util.Date modelToDate(freemarker.template.TemplateDateModel, freemarker.core.Expression);
descriptor: (Lfreemarker/template/TemplateDateModel;Lfreemarker/core/Expression;)Ljava/util/Date;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface freemarker.template.TemplateDateModel.getAsDate:()Ljava/util/Date;
astore 2
start local 2 1: aload 2
ifnonnull 2
ldc Ljava/util/Date;
aload 0
aload 1
invokestatic freemarker.core.EvalUtil.newModelHasStoredNullException:(Ljava/lang/Class;Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;)Lfreemarker/template/TemplateModelException;
athrow
2: StackMap locals: java.util.Date
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 model Lfreemarker/template/TemplateDateModel;
0 3 1 expr Lfreemarker/core/Expression;
1 3 2 value Ljava/util/Date;
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
model
expr
static freemarker.template.TemplateModelException newModelHasStoredNullException(java.lang.Class, freemarker.template.TemplateModel, freemarker.core.Expression);
descriptor: (Ljava/lang/Class;Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;)Lfreemarker/template/TemplateModelException;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new freemarker.core._TemplateModelException
dup
aload 2
1: aload 0
aload 1
invokestatic freemarker.core._TemplateModelException.modelHasStoredNullDescription:(Ljava/lang/Class;Lfreemarker/template/TemplateModel;)[Ljava/lang/Object;
2: invokespecial freemarker.core._TemplateModelException.<init>:(Lfreemarker/core/Expression;[Ljava/lang/Object;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 expected Ljava/lang/Class;
0 3 1 model Lfreemarker/template/TemplateModel;
0 3 2 expr Lfreemarker/core/Expression;
MethodParameters:
Name Flags
expected
model
expr
static boolean compare(freemarker.core.Expression, int, java.lang.String, freemarker.core.Expression, freemarker.core.Expression, freemarker.core.Environment);
descriptor: (Lfreemarker/core/Expression;ILjava/lang/String;Lfreemarker/core/Expression;Lfreemarker/core/Expression;Lfreemarker/core/Environment;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=12, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 5
invokevirtual freemarker.core.Expression.eval:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
astore 6
start local 6 1: aload 3
aload 5
invokevirtual freemarker.core.Expression.eval:(Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
astore 7
start local 7 2: aload 6
aload 0
3: iload 1
aload 2
4: aload 7
aload 3
5: aload 4
iconst_0
6: iconst_0
iconst_0
iconst_0
7: aload 5
8: 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
ireturn
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 9 0 leftExp Lfreemarker/core/Expression;
0 9 1 operator I
0 9 2 operatorString Ljava/lang/String;
0 9 3 rightExp Lfreemarker/core/Expression;
0 9 4 defaultBlamed Lfreemarker/core/Expression;
0 9 5 env Lfreemarker/core/Environment;
1 9 6 ltm Lfreemarker/template/TemplateModel;
2 9 7 rtm Lfreemarker/template/TemplateModel;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
leftExp
operator
operatorString
rightExp
defaultBlamed
env
static boolean compare(freemarker.template.TemplateModel, int, freemarker.template.TemplateModel, freemarker.core.Environment);
descriptor: (Lfreemarker/template/TemplateModel;ILfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=12, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aconst_null
1: iload 1
aconst_null
2: aload 2
aconst_null
3: aconst_null
iconst_0
4: iconst_0
iconst_0
iconst_0
5: aload 3
6: 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
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 leftValue Lfreemarker/template/TemplateModel;
0 7 1 operator I
0 7 2 rightValue Lfreemarker/template/TemplateModel;
0 7 3 env Lfreemarker/core/Environment;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
leftValue
operator
rightValue
env
static boolean compareLenient(freemarker.template.TemplateModel, int, freemarker.template.TemplateModel, freemarker.core.Environment);
descriptor: (Lfreemarker/template/TemplateModel;ILfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=12, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aconst_null
1: iload 1
aconst_null
2: aload 2
aconst_null
3: aconst_null
iconst_0
4: iconst_1
iconst_0
iconst_0
5: aload 3
6: 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
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 leftValue Lfreemarker/template/TemplateModel;
0 7 1 operator I
0 7 2 rightValue Lfreemarker/template/TemplateModel;
0 7 3 env Lfreemarker/core/Environment;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
leftValue
operator
rightValue
env
static boolean compare(freemarker.template.TemplateModel, freemarker.core.Expression, int, java.lang.String, freemarker.template.TemplateModel, freemarker.core.Expression, freemarker.core.Expression, boolean, boolean, boolean, boolean, freemarker.core.Environment);
descriptor: (Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;ILjava/lang/String;Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;Lfreemarker/core/Expression;ZZZZLfreemarker/core/Environment;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=13, locals=19, args_size=12
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 start local 11 0: aload 0
ifnonnull 11
1: aload 11
ifnull 4
aload 11
invokevirtual freemarker.core.Environment.isClassicCompatible:()Z
ifeq 4
2: getstatic freemarker.template.TemplateScalarModel.EMPTY_STRING:Lfreemarker/template/TemplateModel;
astore 0
3: goto 11
4: StackMap locals:
StackMap stack:
iload 9
ifeq 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aload 1
ifnull 8
7: aload 1
aload 11
invokestatic freemarker.core.InvalidReferenceException.getInstance:(Lfreemarker/core/Expression;Lfreemarker/core/Environment;)Lfreemarker/core/InvalidReferenceException;
athrow
8: StackMap locals:
StackMap stack:
new freemarker.core._MiscTemplateException
dup
aload 6
aload 11
9: ldc "The left operand of the comparison was undefined or null."
10: invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Expression;Lfreemarker/core/Environment;Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 4
ifnonnull 22
12: aload 11
ifnull 15
aload 11
invokevirtual freemarker.core.Environment.isClassicCompatible:()Z
ifeq 15
13: getstatic freemarker.template.TemplateScalarModel.EMPTY_STRING:Lfreemarker/template/TemplateModel;
astore 4
14: goto 22
15: StackMap locals:
StackMap stack:
iload 10
ifeq 17
16: iconst_0
ireturn
17: StackMap locals:
StackMap stack:
aload 5
ifnull 19
18: aload 5
aload 11
invokestatic freemarker.core.InvalidReferenceException.getInstance:(Lfreemarker/core/Expression;Lfreemarker/core/Environment;)Lfreemarker/core/InvalidReferenceException;
athrow
19: StackMap locals:
StackMap stack:
new freemarker.core._MiscTemplateException
dup
aload 6
aload 11
20: ldc "The right operand of the comparison was undefined or null."
21: invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Expression;Lfreemarker/core/Environment;Ljava/lang/String;)V
athrow
22: StackMap locals:
StackMap stack:
aload 0
instanceof freemarker.template.TemplateNumberModel
ifeq 37
aload 4
instanceof freemarker.template.TemplateNumberModel
ifeq 37
23: aload 0
checkcast freemarker.template.TemplateNumberModel
aload 1
invokestatic freemarker.core.EvalUtil.modelToNumber:(Lfreemarker/template/TemplateNumberModel;Lfreemarker/core/Expression;)Ljava/lang/Number;
astore 13
start local 13 24: aload 4
checkcast freemarker.template.TemplateNumberModel
aload 5
invokestatic freemarker.core.EvalUtil.modelToNumber:(Lfreemarker/template/TemplateNumberModel;Lfreemarker/core/Expression;)Ljava/lang/Number;
astore 14
start local 14 25: aload 11
ifnull 27
26: aload 11
invokevirtual freemarker.core.Environment.getArithmeticEngine:()Lfreemarker/core/ArithmeticEngine;
goto 30
27: StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.template.TemplateModel freemarker.core.Expression freemarker.core.Expression int int int int freemarker.core.Environment top java.lang.Number java.lang.Number
StackMap stack:
aload 1
ifnull 29
28: aload 1
invokevirtual freemarker.core.Expression.getTemplate:()Lfreemarker/template/Template;
invokevirtual freemarker.template.Template.getArithmeticEngine:()Lfreemarker/core/ArithmeticEngine;
goto 30
29: StackMap locals:
StackMap stack:
getstatic freemarker.core.ArithmeticEngine.BIGDECIMAL_ENGINE:Lfreemarker/core/ArithmeticEngine$BigDecimalEngine;
30: StackMap locals:
StackMap stack: freemarker.core.ArithmeticEngine
astore 15
start local 15 31: aload 15
aload 13
aload 14
invokevirtual freemarker.core.ArithmeticEngine.compareNumbers:(Ljava/lang/Number;Ljava/lang/Number;)I
istore 12
start local 12 32: goto 113
end local 12 StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.template.TemplateModel freemarker.core.Expression freemarker.core.Expression int int int int freemarker.core.Environment top java.lang.Number java.lang.Number freemarker.core.ArithmeticEngine
StackMap stack: java.lang.RuntimeException
33: astore 16
start local 16 34: new freemarker.core._MiscTemplateException
dup
aload 6
aload 16
aload 11
35: iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "Unexpected error while comparing two numbers: "
aastore
dup
iconst_1
aload 16
aastore
36: invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Expression;Ljava/lang/Throwable;Lfreemarker/core/Environment;[Ljava/lang/Object;)V
athrow
end local 16 end local 15 end local 14 end local 13 37: StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.template.TemplateModel freemarker.core.Expression freemarker.core.Expression int int int int freemarker.core.Environment
StackMap stack:
aload 0
instanceof freemarker.template.TemplateDateModel
ifeq 64
aload 4
instanceof freemarker.template.TemplateDateModel
ifeq 64
38: aload 0
checkcast freemarker.template.TemplateDateModel
astore 13
start local 13 39: aload 4
checkcast freemarker.template.TemplateDateModel
astore 14
start local 14 40: aload 13
invokeinterface freemarker.template.TemplateDateModel.getDateType:()I
istore 15
start local 15 41: aload 14
invokeinterface freemarker.template.TemplateDateModel.getDateType:()I
istore 16
start local 16 42: iload 15
ifeq 43
iload 16
ifne 54
43: StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.template.TemplateModel freemarker.core.Expression freemarker.core.Expression int int int int freemarker.core.Environment top freemarker.template.TemplateDateModel freemarker.template.TemplateDateModel int int
StackMap stack:
iload 15
ifne 47
44: ldc "left"
astore 17
start local 17 45: aload 1
astore 18
start local 18 46: goto 49
end local 18 end local 17 47: StackMap locals:
StackMap stack:
ldc "right"
astore 17
start local 17 48: aload 5
astore 18
start local 18 49: StackMap locals: java.lang.String freemarker.core.Expression
StackMap stack:
new freemarker.core._MiscTemplateException
dup
aload 18
ifnull 50
aload 18
goto 51
StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.template.TemplateModel freemarker.core.Expression freemarker.core.Expression int int int int freemarker.core.Environment top freemarker.template.TemplateDateModel freemarker.template.TemplateDateModel int int java.lang.String freemarker.core.Expression
StackMap stack: new 49 new 49
50: aload 6
StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.template.TemplateModel freemarker.core.Expression freemarker.core.Expression int int int int freemarker.core.Environment top freemarker.template.TemplateDateModel freemarker.template.TemplateDateModel int int java.lang.String freemarker.core.Expression
StackMap stack: new 49 new 49 freemarker.core.Expression
51: aload 11
iconst_4
anewarray java.lang.Object
dup
iconst_0
52: ldc "The "
aastore
dup
iconst_1
aload 17
aastore
dup
iconst_2
ldc " "
aastore
dup
iconst_3
ldc "value of the comparison is a date-like value where it's not known if it's a date (no time part), time, or date-time, and thus can't be used in a comparison."
53: aastore
invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Expression;Lfreemarker/core/Environment;[Ljava/lang/Object;)V
athrow
end local 18 end local 17 54: StackMap locals:
StackMap stack:
iload 15
iload 16
if_icmpeq 60
55: new freemarker.core._MiscTemplateException
dup
aload 6
aload 11
iconst_5
anewarray java.lang.Object
dup
iconst_0
56: ldc "Can't compare dates of different types. Left date type is "
aastore
dup
iconst_1
57: getstatic freemarker.template.TemplateDateModel.TYPE_NAMES:Ljava/util/List;
iload 15
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
aastore
dup
iconst_2
ldc ", right date type is "
aastore
dup
iconst_3
58: getstatic freemarker.template.TemplateDateModel.TYPE_NAMES:Ljava/util/List;
iload 16
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
aastore
dup
iconst_4
ldc "."
59: aastore
invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Expression;Lfreemarker/core/Environment;[Ljava/lang/Object;)V
athrow
60: StackMap locals:
StackMap stack:
aload 13
aload 1
invokestatic freemarker.core.EvalUtil.modelToDate:(Lfreemarker/template/TemplateDateModel;Lfreemarker/core/Expression;)Ljava/util/Date;
astore 17
start local 17 61: aload 14
aload 5
invokestatic freemarker.core.EvalUtil.modelToDate:(Lfreemarker/template/TemplateDateModel;Lfreemarker/core/Expression;)Ljava/util/Date;
astore 18
start local 18 62: aload 17
aload 18
invokevirtual java.util.Date.compareTo:(Ljava/util/Date;)I
istore 12
end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 start local 12 63: goto 113
end local 12 StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.template.TemplateModel freemarker.core.Expression freemarker.core.Expression int int int int freemarker.core.Environment
StackMap stack:
64: aload 0
instanceof freemarker.template.TemplateScalarModel
ifeq 73
aload 4
instanceof freemarker.template.TemplateScalarModel
ifeq 73
65: iload 2
iconst_1
if_icmpeq 69
iload 2
iconst_2
if_icmpeq 69
66: new freemarker.core._MiscTemplateException
dup
aload 6
aload 11
iconst_3
anewarray java.lang.Object
dup
iconst_0
67: ldc "Can't use operator \""
aastore
dup
iconst_1
iload 2
aload 3
invokestatic freemarker.core.EvalUtil.cmpOpToString:(ILjava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_2
ldc "\" on string values."
68: aastore
invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Expression;Lfreemarker/core/Environment;[Ljava/lang/Object;)V
athrow
69: StackMap locals:
StackMap stack:
aload 0
checkcast freemarker.template.TemplateScalarModel
aload 1
aload 11
invokestatic freemarker.core.EvalUtil.modelToString:(Lfreemarker/template/TemplateScalarModel;Lfreemarker/core/Expression;Lfreemarker/core/Environment;)Ljava/lang/String;
astore 13
start local 13 70: aload 4
checkcast freemarker.template.TemplateScalarModel
aload 5
aload 11
invokestatic freemarker.core.EvalUtil.modelToString:(Lfreemarker/template/TemplateScalarModel;Lfreemarker/core/Expression;Lfreemarker/core/Environment;)Ljava/lang/String;
astore 14
start local 14 71: aload 11
invokevirtual freemarker.core.Environment.getCollator:()Ljava/text/Collator;
aload 13
aload 14
invokevirtual java.text.Collator.compare:(Ljava/lang/String;Ljava/lang/String;)I
istore 12
end local 14 end local 13 start local 12 72: goto 113
end local 12 StackMap locals:
StackMap stack:
73: aload 0
instanceof freemarker.template.TemplateBooleanModel
ifeq 86
aload 4
instanceof freemarker.template.TemplateBooleanModel
ifeq 86
74: iload 2
iconst_1
if_icmpeq 78
iload 2
iconst_2
if_icmpeq 78
75: new freemarker.core._MiscTemplateException
dup
aload 6
aload 11
iconst_3
anewarray java.lang.Object
dup
iconst_0
76: ldc "Can't use operator \""
aastore
dup
iconst_1
iload 2
aload 3
invokestatic freemarker.core.EvalUtil.cmpOpToString:(ILjava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_2
ldc "\" on boolean values."
77: aastore
invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Expression;Lfreemarker/core/Environment;[Ljava/lang/Object;)V
athrow
78: StackMap locals:
StackMap stack:
aload 0
checkcast freemarker.template.TemplateBooleanModel
invokeinterface freemarker.template.TemplateBooleanModel.getAsBoolean:()Z
istore 13
start local 13 79: aload 4
checkcast freemarker.template.TemplateBooleanModel
invokeinterface freemarker.template.TemplateBooleanModel.getAsBoolean:()Z
istore 14
start local 14 80: iload 13
ifeq 81
iconst_1
goto 82
StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.template.TemplateModel freemarker.core.Expression freemarker.core.Expression int int int int freemarker.core.Environment top int int
StackMap stack:
81: iconst_0
StackMap locals:
StackMap stack: int
82: iload 14
ifeq 83
iconst_1
goto 84
StackMap locals:
StackMap stack: int
83: iconst_0
StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.template.TemplateModel freemarker.core.Expression freemarker.core.Expression int int int int freemarker.core.Environment top int int
StackMap stack: int int
84: isub
istore 12
end local 14 end local 13 start local 12 85: goto 113
end local 12 StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.template.TemplateModel freemarker.core.Expression freemarker.core.Expression int int int int freemarker.core.Environment
StackMap stack:
86: aload 11
invokevirtual freemarker.core.Environment.isClassicCompatible:()Z
ifeq 91
87: aload 1
aload 11
invokevirtual freemarker.core.Expression.evalAndCoerceToPlainText:(Lfreemarker/core/Environment;)Ljava/lang/String;
astore 13
start local 13 88: aload 5
aload 11
invokevirtual freemarker.core.Expression.evalAndCoerceToPlainText:(Lfreemarker/core/Environment;)Ljava/lang/String;
astore 14
start local 14 89: aload 11
invokevirtual freemarker.core.Environment.getCollator:()Ljava/text/Collator;
aload 13
aload 14
invokevirtual java.text.Collator.compare:(Ljava/lang/String;Ljava/lang/String;)I
istore 12
end local 14 end local 13 start local 12 90: goto 113
end local 12 91: StackMap locals:
StackMap stack:
iload 8
ifeq 96
92: iload 2
iconst_1
if_icmpne 94
93: iconst_0
ireturn
94: StackMap locals:
StackMap stack:
iload 2
iconst_2
if_icmpne 96
95: iconst_1
ireturn
96: StackMap locals:
StackMap stack:
new freemarker.core._MiscTemplateException
dup
aload 6
aload 11
bipush 12
anewarray java.lang.Object
dup
iconst_0
97: ldc "Can't compare values of these types. "
aastore
dup
iconst_1
98: ldc "Allowed comparisons are between two numbers, two strings, two dates, or two booleans.\n"
aastore
dup
iconst_2
99: ldc "Left hand operand "
aastore
dup
iconst_3
100: iload 7
ifeq 102
aload 1
ifnull 102
101: iconst_3
anewarray java.lang.Object
dup
iconst_0
ldc "("
aastore
dup
iconst_1
new freemarker.core._DelayedGetCanonicalForm
dup
aload 1
invokespecial freemarker.core._DelayedGetCanonicalForm.<init>:(Lfreemarker/core/TemplateObject;)V
aastore
dup
iconst_2
ldc ") value "
aastore
goto 103
102: StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.template.TemplateModel freemarker.core.Expression freemarker.core.Expression int int int int freemarker.core.Environment
StackMap stack: new 96 new 96 freemarker.core.Expression freemarker.core.Environment java.lang.Object[] java.lang.Object[] int
ldc ""
StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.template.TemplateModel freemarker.core.Expression freemarker.core.Expression int int int int freemarker.core.Environment
StackMap stack: new 96 new 96 freemarker.core.Expression freemarker.core.Environment java.lang.Object[] java.lang.Object[] int java.io.Serializable
103: aastore
dup
iconst_4
104: ldc "is "
aastore
dup
iconst_5
new freemarker.core._DelayedAOrAn
dup
new freemarker.core._DelayedFTLTypeDescription
dup
aload 0
invokespecial freemarker.core._DelayedFTLTypeDescription.<init>:(Lfreemarker/template/TemplateModel;)V
invokespecial freemarker.core._DelayedAOrAn.<init>:(Ljava/lang/Object;)V
aastore
dup
bipush 6
ldc ".\n"
aastore
dup
bipush 7
105: ldc "Right hand operand "
aastore
dup
bipush 8
106: iload 7
ifeq 108
aload 5
ifnull 108
107: iconst_3
anewarray java.lang.Object
dup
iconst_0
ldc "("
aastore
dup
iconst_1
new freemarker.core._DelayedGetCanonicalForm
dup
aload 5
invokespecial freemarker.core._DelayedGetCanonicalForm.<init>:(Lfreemarker/core/TemplateObject;)V
aastore
dup
iconst_2
ldc ") value "
aastore
goto 109
108: StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.template.TemplateModel freemarker.core.Expression freemarker.core.Expression int int int int freemarker.core.Environment
StackMap stack: new 96 new 96 freemarker.core.Expression freemarker.core.Environment java.lang.Object[] java.lang.Object[] int
ldc ""
StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.template.TemplateModel freemarker.core.Expression freemarker.core.Expression int int int int freemarker.core.Environment
StackMap stack: new 96 new 96 freemarker.core.Expression freemarker.core.Environment java.lang.Object[] java.lang.Object[] int java.io.Serializable
109: aastore
dup
bipush 9
110: ldc "is "
aastore
dup
bipush 10
new freemarker.core._DelayedAOrAn
dup
new freemarker.core._DelayedFTLTypeDescription
dup
aload 4
invokespecial freemarker.core._DelayedFTLTypeDescription.<init>:(Lfreemarker/template/TemplateModel;)V
invokespecial freemarker.core._DelayedAOrAn.<init>:(Ljava/lang/Object;)V
aastore
dup
bipush 11
111: ldc "."
112: aastore
invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Expression;Lfreemarker/core/Environment;[Ljava/lang/Object;)V
athrow
start local 12 113: StackMap locals: int
StackMap stack:
iload 2
tableswitch { // 1 - 6
1: 114
2: 116
3: 118
4: 120
5: 122
6: 124
default: 126
}
114: StackMap locals:
StackMap stack:
iload 12
ifne 115
iconst_1
ireturn
StackMap locals:
StackMap stack:
115: iconst_0
ireturn
116: StackMap locals:
StackMap stack:
iload 12
ifeq 117
iconst_1
ireturn
StackMap locals:
StackMap stack:
117: iconst_0
ireturn
118: StackMap locals:
StackMap stack:
iload 12
ifge 119
iconst_1
ireturn
StackMap locals:
StackMap stack:
119: iconst_0
ireturn
120: StackMap locals:
StackMap stack:
iload 12
ifle 121
iconst_1
ireturn
StackMap locals:
StackMap stack:
121: iconst_0
ireturn
122: StackMap locals:
StackMap stack:
iload 12
ifgt 123
iconst_1
ireturn
StackMap locals:
StackMap stack:
123: iconst_0
ireturn
124: StackMap locals:
StackMap stack:
iload 12
iflt 125
iconst_1
ireturn
StackMap locals:
StackMap stack:
125: iconst_0
ireturn
126: StackMap locals:
StackMap stack:
new freemarker.core.BugException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported comparator operator code: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial freemarker.core.BugException.<init>:(Ljava/lang/String;)V
athrow
end local 12 end local 11 end local 10 end local 9 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 127 0 leftValue Lfreemarker/template/TemplateModel;
0 127 1 leftExp Lfreemarker/core/Expression;
0 127 2 operator I
0 127 3 operatorString Ljava/lang/String;
0 127 4 rightValue Lfreemarker/template/TemplateModel;
0 127 5 rightExp Lfreemarker/core/Expression;
0 127 6 defaultBlamed Lfreemarker/core/Expression;
0 127 7 quoteOperandsInErrors Z
0 127 8 typeMismatchMeansNotEqual Z
0 127 9 leftNullReturnsFalse Z
0 127 10 rightNullReturnsFalse Z
0 127 11 env Lfreemarker/core/Environment;
32 33 12 cmpResult I
63 64 12 cmpResult I
72 73 12 cmpResult I
85 86 12 cmpResult I
90 91 12 cmpResult I
113 127 12 cmpResult I
24 37 13 leftNum Ljava/lang/Number;
25 37 14 rightNum Ljava/lang/Number;
31 37 15 ae Lfreemarker/core/ArithmeticEngine;
34 37 16 e Ljava/lang/RuntimeException;
39 63 13 leftDateModel Lfreemarker/template/TemplateDateModel;
40 63 14 rightDateModel Lfreemarker/template/TemplateDateModel;
41 63 15 leftDateType I
42 63 16 rightDateType I
45 47 17 sideName Ljava/lang/String;
48 54 17 sideName Ljava/lang/String;
46 47 18 sideExp Lfreemarker/core/Expression;
49 54 18 sideExp Lfreemarker/core/Expression;
61 63 17 leftDate Ljava/util/Date;
62 63 18 rightDate Ljava/util/Date;
70 72 13 leftString Ljava/lang/String;
71 72 14 rightString Ljava/lang/String;
79 85 13 leftBool Z
80 85 14 rightBool Z
88 90 13 leftSting Ljava/lang/String;
89 90 14 rightString Ljava/lang/String;
Exception table:
from to target type
31 32 33 Class java.lang.RuntimeException
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
leftValue
leftExp
operator
operatorString
rightValue
rightExp
defaultBlamed
quoteOperandsInErrors
typeMismatchMeansNotEqual
leftNullReturnsFalse
rightNullReturnsFalse
env
private static java.lang.String cmpOpToString(int, java.lang.String);
descriptor: (ILjava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
1: aload 1
areturn
2: StackMap locals:
StackMap stack:
iload 0
tableswitch { // 1 - 6
1: 3
2: 4
3: 5
4: 6
5: 7
6: 8
default: 9
}
3: StackMap locals:
StackMap stack:
ldc "equals"
areturn
4: StackMap locals:
StackMap stack:
ldc "not-equals"
areturn
5: StackMap locals:
StackMap stack:
ldc "less-than"
areturn
6: StackMap locals:
StackMap stack:
ldc "greater-than"
areturn
7: StackMap locals:
StackMap stack:
ldc "less-than-equals"
areturn
8: StackMap locals:
StackMap stack:
ldc "greater-than-equals"
areturn
9: StackMap locals:
StackMap stack:
ldc "???"
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 operator I
0 10 1 operatorString Ljava/lang/String;
MethodParameters:
Name Flags
operator
operatorString
static java.lang.Object coerceModelToStringOrMarkup(freemarker.template.TemplateModel, freemarker.core.Expression, java.lang.String, freemarker.core.Environment);
descriptor: (Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;Ljava/lang/String;Lfreemarker/core/Environment;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iconst_0
aload 2
aload 3
invokestatic freemarker.core.EvalUtil.coerceModelToStringOrMarkup:(Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;ZLjava/lang/String;Lfreemarker/core/Environment;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 tm Lfreemarker/template/TemplateModel;
0 1 1 exp Lfreemarker/core/Expression;
0 1 2 seqTip Ljava/lang/String;
0 1 3 env Lfreemarker/core/Environment;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
tm
exp
seqTip
env
static java.lang.Object coerceModelToStringOrMarkup(freemarker.template.TemplateModel, freemarker.core.Expression, boolean, java.lang.String, freemarker.core.Environment);
descriptor: (Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;ZLjava/lang/String;Lfreemarker/core/Environment;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
instanceof freemarker.template.TemplateNumberModel
ifeq 7
1: aload 0
checkcast freemarker.template.TemplateNumberModel
astore 5
start local 5 2: aload 4
aload 1
iconst_0
invokevirtual freemarker.core.Environment.getTemplateNumberFormat:(Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateNumberFormat;
astore 6
start local 6 3: aload 6
aload 5
invokevirtual freemarker.core.TemplateNumberFormat.format:(Lfreemarker/template/TemplateNumberModel;)Ljava/lang/Object;
invokestatic freemarker.core.EvalUtil.assertFormatResultNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
4: areturn
5: StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.core.Environment freemarker.template.TemplateNumberModel freemarker.core.TemplateNumberFormat
StackMap stack: freemarker.core.TemplateValueFormatException
astore 7
start local 7 6: aload 6
aload 1
aload 7
iconst_0
invokestatic freemarker.core._MessageUtil.newCantFormatNumberException:(Lfreemarker/core/TemplateNumberFormat;Lfreemarker/core/Expression;Lfreemarker/core/TemplateValueFormatException;Z)Lfreemarker/template/TemplateException;
athrow
end local 7 end local 6 end local 5 7: StackMap locals:
StackMap stack:
aload 0
instanceof freemarker.template.TemplateDateModel
ifeq 14
8: aload 0
checkcast freemarker.template.TemplateDateModel
astore 5
start local 5 9: aload 4
aload 5
aload 1
iconst_0
invokevirtual freemarker.core.Environment.getTemplateDateFormat:(Lfreemarker/template/TemplateDateModel;Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateDateFormat;
astore 6
start local 6 10: aload 6
aload 5
invokevirtual freemarker.core.TemplateDateFormat.format:(Lfreemarker/template/TemplateDateModel;)Ljava/lang/Object;
invokestatic freemarker.core.EvalUtil.assertFormatResultNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
11: areturn
12: StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression int java.lang.String freemarker.core.Environment freemarker.template.TemplateDateModel freemarker.core.TemplateDateFormat
StackMap stack: freemarker.core.TemplateValueFormatException
astore 7
start local 7 13: aload 6
aload 1
aload 7
iconst_0
invokestatic freemarker.core._MessageUtil.newCantFormatDateException:(Lfreemarker/core/TemplateDateFormat;Lfreemarker/core/Expression;Lfreemarker/core/TemplateValueFormatException;Z)Lfreemarker/template/TemplateException;
athrow
end local 7 end local 6 end local 5 14: StackMap locals:
StackMap stack:
aload 0
instanceof freemarker.core.TemplateMarkupOutputModel
ifeq 16
15: aload 0
areturn
16: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 3
iconst_1
iload 2
aload 4
invokestatic freemarker.core.EvalUtil.coerceModelToTextualCommon:(Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;Ljava/lang/String;ZZLfreemarker/core/Environment;)Ljava/lang/String;
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 tm Lfreemarker/template/TemplateModel;
0 17 1 exp Lfreemarker/core/Expression;
0 17 2 returnNullOnNonCoercableType Z
0 17 3 seqTip Ljava/lang/String;
0 17 4 env Lfreemarker/core/Environment;
2 7 5 tnm Lfreemarker/template/TemplateNumberModel;
3 7 6 format Lfreemarker/core/TemplateNumberFormat;
6 7 7 e Lfreemarker/core/TemplateValueFormatException;
9 14 5 tdm Lfreemarker/template/TemplateDateModel;
10 14 6 format Lfreemarker/core/TemplateDateFormat;
13 14 7 e Lfreemarker/core/TemplateValueFormatException;
Exception table:
from to target type
3 4 5 Class freemarker.core.TemplateValueFormatException
10 11 12 Class freemarker.core.TemplateValueFormatException
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
tm
exp
returnNullOnNonCoercableType
seqTip
env
static java.lang.String coerceModelToStringOrUnsupportedMarkup(freemarker.template.TemplateModel, freemarker.core.Expression, java.lang.String, freemarker.core.Environment);
descriptor: (Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;Ljava/lang/String;Lfreemarker/core/Environment;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
instanceof freemarker.template.TemplateNumberModel
ifeq 7
1: aload 0
checkcast freemarker.template.TemplateNumberModel
astore 4
start local 4 2: aload 3
aload 1
iconst_0
invokevirtual freemarker.core.Environment.getTemplateNumberFormat:(Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateNumberFormat;
astore 5
start local 5 3: aload 5
aload 4
invokevirtual freemarker.core.TemplateNumberFormat.format:(Lfreemarker/template/TemplateNumberModel;)Ljava/lang/Object;
aload 1
aload 3
invokestatic freemarker.core.EvalUtil.ensureFormatResultString:(Ljava/lang/Object;Lfreemarker/core/Expression;Lfreemarker/core/Environment;)Ljava/lang/String;
4: areturn
5: StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression java.lang.String freemarker.core.Environment freemarker.template.TemplateNumberModel freemarker.core.TemplateNumberFormat
StackMap stack: freemarker.core.TemplateValueFormatException
astore 6
start local 6 6: aload 5
aload 1
aload 6
iconst_0
invokestatic freemarker.core._MessageUtil.newCantFormatNumberException:(Lfreemarker/core/TemplateNumberFormat;Lfreemarker/core/Expression;Lfreemarker/core/TemplateValueFormatException;Z)Lfreemarker/template/TemplateException;
athrow
end local 6 end local 5 end local 4 7: StackMap locals:
StackMap stack:
aload 0
instanceof freemarker.template.TemplateDateModel
ifeq 14
8: aload 0
checkcast freemarker.template.TemplateDateModel
astore 4
start local 4 9: aload 3
aload 4
aload 1
iconst_0
invokevirtual freemarker.core.Environment.getTemplateDateFormat:(Lfreemarker/template/TemplateDateModel;Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateDateFormat;
astore 5
start local 5 10: aload 5
aload 4
invokevirtual freemarker.core.TemplateDateFormat.format:(Lfreemarker/template/TemplateDateModel;)Ljava/lang/Object;
aload 1
aload 3
invokestatic freemarker.core.EvalUtil.ensureFormatResultString:(Ljava/lang/Object;Lfreemarker/core/Expression;Lfreemarker/core/Environment;)Ljava/lang/String;
11: areturn
12: StackMap locals: freemarker.template.TemplateModel freemarker.core.Expression java.lang.String freemarker.core.Environment freemarker.template.TemplateDateModel freemarker.core.TemplateDateFormat
StackMap stack: freemarker.core.TemplateValueFormatException
astore 6
start local 6 13: aload 5
aload 1
aload 6
iconst_0
invokestatic freemarker.core._MessageUtil.newCantFormatDateException:(Lfreemarker/core/TemplateDateFormat;Lfreemarker/core/Expression;Lfreemarker/core/TemplateValueFormatException;Z)Lfreemarker/template/TemplateException;
athrow
end local 6 end local 5 end local 4 14: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
iconst_0
iconst_0
aload 3
invokestatic freemarker.core.EvalUtil.coerceModelToTextualCommon:(Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;Ljava/lang/String;ZZLfreemarker/core/Environment;)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 tm Lfreemarker/template/TemplateModel;
0 15 1 exp Lfreemarker/core/Expression;
0 15 2 seqTip Ljava/lang/String;
0 15 3 env Lfreemarker/core/Environment;
2 7 4 tnm Lfreemarker/template/TemplateNumberModel;
3 7 5 format Lfreemarker/core/TemplateNumberFormat;
6 7 6 e Lfreemarker/core/TemplateValueFormatException;
9 14 4 tdm Lfreemarker/template/TemplateDateModel;
10 14 5 format Lfreemarker/core/TemplateDateFormat;
13 14 6 e Lfreemarker/core/TemplateValueFormatException;
Exception table:
from to target type
3 4 5 Class freemarker.core.TemplateValueFormatException
10 11 12 Class freemarker.core.TemplateValueFormatException
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
tm
exp
seqTip
env
static java.lang.String coerceModelToPlainText(freemarker.template.TemplateModel, freemarker.core.Expression, java.lang.String, freemarker.core.Environment);
descriptor: (Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;Ljava/lang/String;Lfreemarker/core/Environment;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
instanceof freemarker.template.TemplateNumberModel
ifeq 2
1: aload 3
aload 0
checkcast freemarker.template.TemplateNumberModel
aload 1
iconst_0
invokevirtual freemarker.core.Environment.formatNumberToPlainText:(Lfreemarker/template/TemplateNumberModel;Lfreemarker/core/Expression;Z)Ljava/lang/String;
invokestatic freemarker.core.EvalUtil.assertFormatResultNotNull:(Ljava/lang/String;)Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
instanceof freemarker.template.TemplateDateModel
ifeq 4
3: aload 3
aload 0
checkcast freemarker.template.TemplateDateModel
aload 1
iconst_0
invokevirtual freemarker.core.Environment.formatDateToPlainText:(Lfreemarker/template/TemplateDateModel;Lfreemarker/core/Expression;Z)Ljava/lang/String;
invokestatic freemarker.core.EvalUtil.assertFormatResultNotNull:(Ljava/lang/String;)Ljava/lang/String;
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
iconst_0
iconst_0
aload 3
invokestatic freemarker.core.EvalUtil.coerceModelToTextualCommon:(Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;Ljava/lang/String;ZZLfreemarker/core/Environment;)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 tm Lfreemarker/template/TemplateModel;
0 5 1 exp Lfreemarker/core/Expression;
0 5 2 seqTip Ljava/lang/String;
0 5 3 env Lfreemarker/core/Environment;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
tm
exp
seqTip
env
private static java.lang.String coerceModelToTextualCommon(freemarker.template.TemplateModel, freemarker.core.Expression, java.lang.String, boolean, boolean, freemarker.core.Environment);
descriptor: (Lfreemarker/template/TemplateModel;Lfreemarker/core/Expression;Ljava/lang/String;ZZLfreemarker/core/Environment;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
instanceof freemarker.template.TemplateScalarModel
ifeq 2
1: aload 0
checkcast freemarker.template.TemplateScalarModel
aload 1
aload 5
invokestatic freemarker.core.EvalUtil.modelToString:(Lfreemarker/template/TemplateScalarModel;Lfreemarker/core/Expression;Lfreemarker/core/Environment;)Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
ifnonnull 11
3: aload 5
invokevirtual freemarker.core.Environment.isClassicCompatible:()Z
ifeq 5
4: ldc ""
areturn
5: StackMap locals:
StackMap stack:
aload 1
ifnull 7
6: aload 1
aload 5
invokestatic freemarker.core.InvalidReferenceException.getInstance:(Lfreemarker/core/Expression;Lfreemarker/core/Environment;)Lfreemarker/core/InvalidReferenceException;
athrow
7: StackMap locals:
StackMap stack:
new freemarker.core.InvalidReferenceException
dup
8: ldc "Null/missing value (no more informatoin avilable)"
9: aload 5
10: invokespecial freemarker.core.InvalidReferenceException.<init>:(Ljava/lang/String;Lfreemarker/core/Environment;)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
instanceof freemarker.template.TemplateBooleanModel
ifeq 27
12: aload 0
checkcast freemarker.template.TemplateBooleanModel
invokeinterface freemarker.template.TemplateBooleanModel.getAsBoolean:()Z
istore 6
start local 6 13: aload 5
invokevirtual freemarker.core.Environment.getClassicCompatibleAsInt:()I
istore 7
start local 7 14: iload 7
ifne 16
15: aload 5
iload 6
iconst_0
invokevirtual freemarker.core.Environment.formatBoolean:(ZZ)Ljava/lang/String;
areturn
16: StackMap locals: int int
StackMap stack:
iload 7
iconst_1
if_icmpne 20
17: iload 6
ifeq 18
ldc "true"
goto 19
StackMap locals:
StackMap stack:
18: ldc ""
StackMap locals:
StackMap stack: java.lang.String
19: areturn
20: StackMap locals:
StackMap stack:
iload 7
iconst_2
if_icmpne 26
21: aload 0
instanceof freemarker.ext.beans.BeanModel
ifeq 23
22: aload 0
checkcast freemarker.ext.beans.BeanModel
invokestatic freemarker.ext.beans._BeansAPI.getAsClassicCompatibleString:(Lfreemarker/ext/beans/BeanModel;)Ljava/lang/String;
areturn
23: StackMap locals:
StackMap stack:
iload 6
ifeq 24
ldc "true"
goto 25
StackMap locals:
StackMap stack:
24: ldc ""
StackMap locals:
StackMap stack: java.lang.String
25: areturn
26: StackMap locals:
StackMap stack:
new freemarker.core.BugException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported classic_compatible variation: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 7
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial freemarker.core.BugException.<init>:(Ljava/lang/String;)V
athrow
end local 7 end local 6 27: StackMap locals:
StackMap stack:
aload 5
invokevirtual freemarker.core.Environment.isClassicCompatible:()Z
ifeq 29
aload 0
instanceof freemarker.ext.beans.BeanModel
ifeq 29
28: aload 0
checkcast freemarker.ext.beans.BeanModel
invokestatic freemarker.ext.beans._BeansAPI.getAsClassicCompatibleString:(Lfreemarker/ext/beans/BeanModel;)Ljava/lang/String;
areturn
29: StackMap locals:
StackMap stack:
iload 4
ifeq 31
30: aconst_null
areturn
31: StackMap locals:
StackMap stack:
aload 2
ifnull 35
aload 0
instanceof freemarker.template.TemplateSequenceModel
ifne 32
aload 0
instanceof freemarker.template.TemplateCollectionModel
ifeq 35
32: StackMap locals:
StackMap stack:
iload 3
ifeq 34
33: new freemarker.core.NonStringOrTemplateOutputException
dup
aload 1
aload 0
aload 2
aload 5
invokespecial freemarker.core.NonStringOrTemplateOutputException.<init>:(Lfreemarker/core/Expression;Lfreemarker/template/TemplateModel;Ljava/lang/String;Lfreemarker/core/Environment;)V
athrow
34: StackMap locals:
StackMap stack:
new freemarker.core.NonStringException
dup
aload 1
aload 0
aload 2
aload 5
invokespecial freemarker.core.NonStringException.<init>:(Lfreemarker/core/Expression;Lfreemarker/template/TemplateModel;Ljava/lang/String;Lfreemarker/core/Environment;)V
athrow
35: StackMap locals:
StackMap stack:
iload 3
ifeq 37
36: new freemarker.core.NonStringOrTemplateOutputException
dup
aload 1
aload 0
aload 5
invokespecial freemarker.core.NonStringOrTemplateOutputException.<init>:(Lfreemarker/core/Expression;Lfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)V
athrow
37: StackMap locals:
StackMap stack:
new freemarker.core.NonStringException
dup
aload 1
aload 0
aload 5
invokespecial freemarker.core.NonStringException.<init>:(Lfreemarker/core/Expression;Lfreemarker/template/TemplateModel;Lfreemarker/core/Environment;)V
athrow
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 38 0 tm Lfreemarker/template/TemplateModel;
0 38 1 exp Lfreemarker/core/Expression;
0 38 2 seqHint Ljava/lang/String;
0 38 3 supportsTOM Z
0 38 4 returnNullOnNonCoercableType Z
0 38 5 env Lfreemarker/core/Environment;
13 27 6 booleanValue Z
14 27 7 compatMode I
Exceptions:
throws freemarker.template.TemplateModelException, freemarker.core.InvalidReferenceException, freemarker.template.TemplateException, freemarker.core.NonStringOrTemplateOutputException, freemarker.core.NonStringException
MethodParameters:
Name Flags
tm
exp
seqHint
supportsTOM
returnNullOnNonCoercableType
env
private static java.lang.String ensureFormatResultString(java.lang.Object, freemarker.core.Expression, freemarker.core.Environment);
descriptor: (Ljava/lang/Object;Lfreemarker/core/Expression;Lfreemarker/core/Environment;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
instanceof java.lang.String
ifeq 2
1: aload 0
checkcast java.lang.String
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokestatic freemarker.core.EvalUtil.assertFormatResultNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 0
checkcast freemarker.core.TemplateMarkupOutputModel
astore 3
start local 3 4: new freemarker.core._ErrorDescriptionBuilder
dup
iconst_3
anewarray java.lang.Object
dup
iconst_0
5: ldc "Value was formatted to convert it to string, but the result was markup of ouput format "
aastore
dup
iconst_1
6: new freemarker.core._DelayedJQuote
dup
aload 3
invokeinterface freemarker.core.TemplateMarkupOutputModel.getOutputFormat:()Lfreemarker/core/MarkupOutputFormat;
invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
aastore
dup
iconst_2
ldc "."
7: aastore
invokespecial freemarker.core._ErrorDescriptionBuilder.<init>:([Ljava/lang/Object;)V
8: ldc "Use value?string to force formatting to plain text."
invokevirtual freemarker.core._ErrorDescriptionBuilder.tip:(Ljava/lang/String;)Lfreemarker/core/_ErrorDescriptionBuilder;
9: aload 1
invokevirtual freemarker.core._ErrorDescriptionBuilder.blame:(Lfreemarker/core/Expression;)Lfreemarker/core/_ErrorDescriptionBuilder;
10: astore 4
start local 4 11: new freemarker.core.NonStringException
dup
aconst_null
aload 4
invokespecial freemarker.core.NonStringException.<init>:(Lfreemarker/core/Environment;Lfreemarker/core/_ErrorDescriptionBuilder;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 formatResult Ljava/lang/Object;
0 12 1 exp Lfreemarker/core/Expression;
0 12 2 env Lfreemarker/core/Environment;
4 12 3 mo Lfreemarker/core/TemplateMarkupOutputModel;
11 12 4 desc Lfreemarker/core/_ErrorDescriptionBuilder;
Exceptions:
throws freemarker.core.NonStringException
MethodParameters:
Name Flags
formatResult
exp
env
static java.lang.String assertFormatResultNotNull(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ifnull 2
1: aload 0
areturn
2: StackMap locals:
StackMap stack:
new java.lang.NullPointerException
dup
ldc "TemplateValueFormatter result can't be null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 r Ljava/lang/String;
MethodParameters:
Name Flags
r
static java.lang.Object assertFormatResultNotNull(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ifnull 2
1: aload 0
areturn
2: StackMap locals:
StackMap stack:
new java.lang.NullPointerException
dup
ldc "TemplateValueFormatter result can't be null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 r Ljava/lang/Object;
MethodParameters:
Name Flags
r
static freemarker.core.TemplateMarkupOutputModel concatMarkupOutputs(freemarker.core.TemplateObject, freemarker.core.TemplateMarkupOutputModel, freemarker.core.TemplateMarkupOutputModel);
descriptor: (Lfreemarker/core/TemplateObject;Lfreemarker/core/TemplateMarkupOutputModel;Lfreemarker/core/TemplateMarkupOutputModel;)Lfreemarker/core/TemplateMarkupOutputModel;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface freemarker.core.TemplateMarkupOutputModel.getOutputFormat:()Lfreemarker/core/MarkupOutputFormat;
astore 3
start local 3 1: aload 2
invokeinterface freemarker.core.TemplateMarkupOutputModel.getOutputFormat:()Lfreemarker/core/MarkupOutputFormat;
astore 4
start local 4 2: aload 4
aload 3
if_acmpeq 16
3: aload 4
aload 2
invokevirtual freemarker.core.MarkupOutputFormat.getSourcePlainText:(Lfreemarker/core/TemplateMarkupOutputModel;)Ljava/lang/String;
dup
astore 5
start local 5 4: ifnull 6
5: aload 3
aload 1
aload 3
aload 5
invokevirtual freemarker.core.MarkupOutputFormat.fromPlainTextByEscaping:(Ljava/lang/String;)Lfreemarker/core/TemplateMarkupOutputModel;
invokevirtual freemarker.core.MarkupOutputFormat.concat:(Lfreemarker/core/TemplateMarkupOutputModel;Lfreemarker/core/TemplateMarkupOutputModel;)Lfreemarker/core/TemplateMarkupOutputModel;
areturn
6: StackMap locals: freemarker.core.MarkupOutputFormat freemarker.core.MarkupOutputFormat java.lang.String
StackMap stack:
aload 3
aload 1
invokevirtual freemarker.core.MarkupOutputFormat.getSourcePlainText:(Lfreemarker/core/TemplateMarkupOutputModel;)Ljava/lang/String;
dup
astore 6
start local 6 7: ifnull 9
8: aload 4
aload 4
aload 6
invokevirtual freemarker.core.MarkupOutputFormat.fromPlainTextByEscaping:(Ljava/lang/String;)Lfreemarker/core/TemplateMarkupOutputModel;
aload 2
invokevirtual freemarker.core.MarkupOutputFormat.concat:(Lfreemarker/core/TemplateMarkupOutputModel;Lfreemarker/core/TemplateMarkupOutputModel;)Lfreemarker/core/TemplateMarkupOutputModel;
areturn
9: StackMap locals: java.lang.String
StackMap stack:
iconst_5
anewarray java.lang.Object
dup
iconst_0
ldc "Concatenation left hand operand is in "
aastore
dup
iconst_1
new freemarker.core._DelayedToString
dup
aload 3
invokespecial freemarker.core._DelayedToString.<init>:(Ljava/lang/Object;)V
aastore
dup
iconst_2
10: ldc " format, while the right hand operand is in "
aastore
dup
iconst_3
new freemarker.core._DelayedToString
dup
aload 4
invokespecial freemarker.core._DelayedToString.<init>:(Ljava/lang/Object;)V
aastore
dup
iconst_4
11: ldc ". Conversion to common format wasn't possible."
aastore
12: astore 7
start local 7 13: aload 0
instanceof freemarker.core.Expression
ifeq 15
14: new freemarker.core._MiscTemplateException
dup
aload 0
checkcast freemarker.core.Expression
aload 7
invokespecial freemarker.core._MiscTemplateException.<init>:(Lfreemarker/core/Expression;[Ljava/lang/Object;)V
athrow
15: StackMap locals: java.lang.Object[]
StackMap stack:
new freemarker.core._MiscTemplateException
dup
aload 7
invokespecial freemarker.core._MiscTemplateException.<init>:([Ljava/lang/Object;)V
athrow
end local 7 end local 6 end local 5 16: StackMap locals:
StackMap stack:
aload 3
aload 1
aload 2
invokevirtual freemarker.core.MarkupOutputFormat.concat:(Lfreemarker/core/TemplateMarkupOutputModel;Lfreemarker/core/TemplateMarkupOutputModel;)Lfreemarker/core/TemplateMarkupOutputModel;
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 parent Lfreemarker/core/TemplateObject;
0 17 1 leftMO Lfreemarker/core/TemplateMarkupOutputModel;
0 17 2 rightMO Lfreemarker/core/TemplateMarkupOutputModel;
1 17 3 leftOF Lfreemarker/core/MarkupOutputFormat;
2 17 4 rightOF Lfreemarker/core/MarkupOutputFormat;
4 16 5 rightPT Ljava/lang/String;
7 16 6 leftPT Ljava/lang/String;
13 16 7 message [Ljava/lang/Object;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
parent
leftMO
rightMO
static freemarker.core.ArithmeticEngine getArithmeticEngine(freemarker.core.Environment, freemarker.core.TemplateObject);
descriptor: (Lfreemarker/core/Environment;Lfreemarker/core/TemplateObject;)Lfreemarker/core/ArithmeticEngine;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ifnull 2
1: aload 0
invokevirtual freemarker.core.Environment.getArithmeticEngine:()Lfreemarker/core/ArithmeticEngine;
goto 3
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual freemarker.core.TemplateObject.getTemplate:()Lfreemarker/template/Template;
invokevirtual freemarker.template.Template.getParserConfiguration:()Lfreemarker/core/ParserConfiguration;
invokeinterface freemarker.core.ParserConfiguration.getArithmeticEngine:()Lfreemarker/core/ArithmeticEngine;
3: StackMap locals:
StackMap stack: freemarker.core.ArithmeticEngine
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 env Lfreemarker/core/Environment;
0 4 1 tObj Lfreemarker/core/TemplateObject;
MethodParameters:
Name Flags
env
tObj
static boolean shouldWrapUncheckedException(java.lang.Throwable, freemarker.core.Environment);
descriptor: (Ljava/lang/Throwable;Lfreemarker/core/Environment;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: ldc Lfreemarker/core/FlowControlException;
aload 0
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual freemarker.core.Environment.getWrapUncheckedExceptions:()Z
ifeq 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual freemarker.core.Environment.getConfiguration:()Lfreemarker/template/Configuration;
invokevirtual freemarker.template.Configuration.getIncompatibleImprovements:()Lfreemarker/template/Version;
invokevirtual freemarker.template.Version.intValue:()I
getstatic freemarker.template._TemplateAPI.VERSION_INT_2_3_27:I
if_icmplt 12
5: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 2
start local 2 6: aload 2
ldc Ljava/lang/NullPointerException;
if_acmpeq 11
7: aload 2
ldc Ljava/lang/ClassCastException;
if_acmpeq 11
8: aload 2
ldc Ljava/lang/IndexOutOfBoundsException;
if_acmpeq 11
9: aload 2
ldc Ljava/lang/reflect/InvocationTargetException;
if_acmpeq 11
10: iconst_0
ireturn
StackMap locals: java.lang.Class
StackMap stack:
11: iconst_1
ireturn
end local 2 12: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 e Ljava/lang/Throwable;
0 13 1 env Lfreemarker/core/Environment;
6 12 2 c Ljava/lang/Class<+Ljava/lang/Throwable;>;
MethodParameters:
Name Flags
e
env
}
SourceFile: "EvalUtil.java"