class freemarker.core.BuiltInsForMultipleTypes$cBI extends freemarker.core.BuiltInsForMultipleTypes$AbstractCBI implements freemarker.core.ICIChainMember
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.core.BuiltInsForMultipleTypes$cBI
super_class: freemarker.core.BuiltInsForMultipleTypes$AbstractCBI
{
private final freemarker.core.BuiltInsForMultipleTypes$cBI$BIBeforeICE2d3d21 prevICIObj;
descriptor: Lfreemarker/core/BuiltInsForMultipleTypes$cBI$BIBeforeICE2d3d21;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial freemarker.core.BuiltInsForMultipleTypes$AbstractCBI.<init>:()V
1: aload 0
new freemarker.core.BuiltInsForMultipleTypes$cBI$BIBeforeICE2d3d21
dup
invokespecial freemarker.core.BuiltInsForMultipleTypes$cBI$BIBeforeICE2d3d21.<init>:()V
putfield freemarker.core.BuiltInsForMultipleTypes$cBI.prevICIObj:Lfreemarker/core/BuiltInsForMultipleTypes$cBI$BIBeforeICE2d3d21;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lfreemarker/core/BuiltInsForMultipleTypes$cBI;
freemarker.template.TemplateModel _eval(freemarker.core.Environment);
descriptor: (Lfreemarker/core/Environment;)Lfreemarker/template/TemplateModel;
flags: (0x0000)
Code:
stack=9, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield freemarker.core.BuiltInsForMultipleTypes$cBI.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.TemplateNumberModel
ifeq 3
2: aload 0
aload 1
aload 2
invokevirtual freemarker.core.BuiltInsForMultipleTypes$cBI.formatNumber:(Lfreemarker/core/Environment;Lfreemarker/template/TemplateModel;)Lfreemarker/template/TemplateModel;
areturn
3: StackMap locals: freemarker.template.TemplateModel
StackMap stack:
aload 2
instanceof freemarker.template.TemplateBooleanModel
ifeq 8
4: new freemarker.template.SimpleScalar
dup
aload 2
checkcast freemarker.template.TemplateBooleanModel
invokeinterface freemarker.template.TemplateBooleanModel.getAsBoolean:()Z
ifeq 6
5: ldc "true"
goto 7
StackMap locals: freemarker.core.BuiltInsForMultipleTypes$cBI freemarker.core.Environment freemarker.template.TemplateModel
StackMap stack: new 4 new 4
6: ldc "false"
7: StackMap locals: freemarker.core.BuiltInsForMultipleTypes$cBI freemarker.core.Environment freemarker.template.TemplateModel
StackMap stack: new 4 new 4 java.lang.String
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
areturn
8: StackMap locals:
StackMap stack:
new freemarker.core.UnexpectedTypeException
dup
9: aload 0
getfield freemarker.core.BuiltInsForMultipleTypes$cBI.target:Lfreemarker/core/Expression;
aload 2
10: ldc "number or boolean"
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Lfreemarker/template/TemplateNumberModel;
aastore
dup
iconst_1
ldc Lfreemarker/template/TemplateBooleanModel;
aastore
11: aload 1
12: invokespecial freemarker.core.UnexpectedTypeException.<init>:(Lfreemarker/core/Expression;Lfreemarker/template/TemplateModel;Ljava/lang/String;[Ljava/lang/Class;Lfreemarker/core/Environment;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lfreemarker/core/BuiltInsForMultipleTypes$cBI;
0 13 1 env Lfreemarker/core/Environment;
1 13 2 model Lfreemarker/template/TemplateModel;
Exceptions:
throws freemarker.template.TemplateException
MethodParameters:
Name Flags
env
protected freemarker.template.TemplateModel formatNumber(freemarker.core.Environment, freemarker.template.TemplateModel);
descriptor: (Lfreemarker/core/Environment;Lfreemarker/template/TemplateModel;)Lfreemarker/template/TemplateModel;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
checkcast freemarker.template.TemplateNumberModel
aload 0
getfield freemarker.core.BuiltInsForMultipleTypes$cBI.target:Lfreemarker/core/Expression;
invokestatic freemarker.core.EvalUtil.modelToNumber:(Lfreemarker/template/TemplateNumberModel;Lfreemarker/core/Expression;)Ljava/lang/Number;
astore 3
start local 3 1: aload 3
instanceof java.lang.Integer
ifne 2
aload 3
instanceof java.lang.Long
ifeq 3
2: StackMap locals: java.lang.Number
StackMap stack:
new freemarker.template.SimpleScalar
dup
aload 3
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
areturn
3: StackMap locals:
StackMap stack:
aload 3
instanceof java.lang.Double
ifeq 11
4: aload 3
invokevirtual java.lang.Number.doubleValue:()D
dstore 4
start local 4 5: dload 4
ldc Infinity
dcmpl
ifne 7
6: new freemarker.template.SimpleScalar
dup
ldc "INF"
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
areturn
7: StackMap locals: double
StackMap stack:
dload 4
ldc -Infinity
dcmpl
ifne 9
8: new freemarker.template.SimpleScalar
dup
ldc "-INF"
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
areturn
9: StackMap locals:
StackMap stack:
dload 4
invokestatic java.lang.Double.isNaN:(D)Z
ifeq 19
10: new freemarker.template.SimpleScalar
dup
ldc "NaN"
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
areturn
end local 4 11: StackMap locals:
StackMap stack:
aload 3
instanceof java.lang.Float
ifeq 19
12: aload 3
invokevirtual java.lang.Number.floatValue:()F
fstore 4
start local 4 13: fload 4
ldc Infinity
fcmpl
ifne 15
14: new freemarker.template.SimpleScalar
dup
ldc "INF"
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
areturn
15: StackMap locals: float
StackMap stack:
fload 4
ldc -Infinity
fcmpl
ifne 17
16: new freemarker.template.SimpleScalar
dup
ldc "-INF"
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
areturn
17: StackMap locals:
StackMap stack:
fload 4
invokestatic java.lang.Float.isNaN:(F)Z
ifeq 19
18: new freemarker.template.SimpleScalar
dup
ldc "NaN"
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
areturn
end local 4 19: StackMap locals:
StackMap stack:
new freemarker.template.SimpleScalar
dup
aload 1
invokevirtual freemarker.core.Environment.getCNumberFormat:()Ljava/text/NumberFormat;
aload 3
invokevirtual java.text.NumberFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial freemarker.template.SimpleScalar.<init>:(Ljava/lang/String;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lfreemarker/core/BuiltInsForMultipleTypes$cBI;
0 20 1 env Lfreemarker/core/Environment;
0 20 2 model Lfreemarker/template/TemplateModel;
1 20 3 num Ljava/lang/Number;
5 11 4 n D
13 19 4 n F
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
env
model
public int getMinimumICIVersion();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic freemarker.template._TemplateAPI.VERSION_INT_2_3_21:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/BuiltInsForMultipleTypes$cBI;
public java.lang.Object getPreviousICIChainMember();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.core.BuiltInsForMultipleTypes$cBI.prevICIObj:Lfreemarker/core/BuiltInsForMultipleTypes$cBI$BIBeforeICE2d3d21;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/core/BuiltInsForMultipleTypes$cBI;
}
SourceFile: "BuiltInsForMultipleTypes.java"
NestHost: freemarker.core.BuiltInsForMultipleTypes
InnerClasses:
abstract AbstractCBI = freemarker.core.BuiltInsForMultipleTypes$AbstractCBI of freemarker.core.BuiltInsForMultipleTypes
cBI = freemarker.core.BuiltInsForMultipleTypes$cBI of freemarker.core.BuiltInsForMultipleTypes
BIBeforeICE2d3d21 = freemarker.core.BuiltInsForMultipleTypes$cBI$BIBeforeICE2d3d21 of freemarker.core.BuiltInsForMultipleTypes$cBI