class freemarker.core.BuiltInsForNumbers
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.core.BuiltInsForNumbers
super_class: java.lang.Object
{
private static final java.math.BigDecimal BIG_DECIMAL_ONE;
descriptor: Ljava/math/BigDecimal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.math.BigDecimal BIG_DECIMAL_LONG_MIN;
descriptor: Ljava/math/BigDecimal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.math.BigDecimal BIG_DECIMAL_LONG_MAX;
descriptor: Ljava/math/BigDecimal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.math.BigInteger BIG_INTEGER_LONG_MIN;
descriptor: Ljava/math/BigInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.math.BigInteger BIG_INTEGER_LONG_MAX;
descriptor: Ljava/math/BigInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.math.BigDecimal
dup
ldc "1"
invokespecial java.math.BigDecimal.<init>:(Ljava/lang/String;)V
putstatic freemarker.core.BuiltInsForNumbers.BIG_DECIMAL_ONE:Ljava/math/BigDecimal;
1: ldc -9223372036854775808
invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
putstatic freemarker.core.BuiltInsForNumbers.BIG_DECIMAL_LONG_MIN:Ljava/math/BigDecimal;
2: ldc 9223372036854775807
invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
putstatic freemarker.core.BuiltInsForNumbers.BIG_DECIMAL_LONG_MAX:Ljava/math/BigDecimal;
3: ldc -9223372036854775808
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
putstatic freemarker.core.BuiltInsForNumbers.BIG_INTEGER_LONG_MIN:Ljava/math/BigInteger;
4: ldc 9223372036854775807
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
putstatic freemarker.core.BuiltInsForNumbers.BIG_INTEGER_LONG_MAX:Ljava/math/BigInteger;
return
LocalVariableTable:
Start End Slot Name Signature
private static final long safeToLong(java.lang.Number);
descriptor: (Ljava/lang/Number;)J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=7, locals=3, args_size=1
start local 0 0: aload 0
instanceof java.lang.Double
ifeq 7
1: aload 0
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
invokestatic java.lang.Math.round:(D)J
l2d
dstore 1
start local 1 2: dload 1
ldc 9.223372036854776E18
dcmpl
ifgt 3
dload 1
ldc -9.223372036854776E18
dcmpg
ifge 6
3: StackMap locals: double
StackMap stack:
new freemarker.core._TemplateModelException
dup
iconst_2
anewarray java.lang.Object
dup
iconst_0
4: ldc "Number doesn't fit into a 64 bit signed integer (long): "
aastore
dup
iconst_1
dload 1
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
5: aastore
invokespecial freemarker.core._TemplateModelException.<init>:([Ljava/lang/Object;)V
athrow
6: StackMap locals:
StackMap stack:
dload 1
d2l
lreturn
end local 1 7: StackMap locals:
StackMap stack:
aload 0
instanceof java.lang.Float
ifeq 14
8: aload 0
checkcast java.lang.Float
invokevirtual java.lang.Float.floatValue:()F
invokestatic java.lang.Math.round:(F)I
i2f
fstore 1
start local 1 9: fload 1
ldc 9.223372E18
fcmpl
ifgt 10
fload 1
ldc -9.223372E18
fcmpg
ifge 13
10: StackMap locals: float
StackMap stack:
new freemarker.core._TemplateModelException
dup
iconst_2
anewarray java.lang.Object
dup
iconst_0
11: ldc "Number doesn't fit into a 64 bit signed integer (long): "
aastore
dup
iconst_1
fload 1
invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
12: aastore
invokespecial freemarker.core._TemplateModelException.<init>:([Ljava/lang/Object;)V
athrow
13: StackMap locals:
StackMap stack:
fload 1
f2l
lreturn
end local 1 14: StackMap locals:
StackMap stack:
aload 0
instanceof java.math.BigDecimal
ifeq 19
15: aload 0
checkcast java.math.BigDecimal
iconst_0
iconst_4
invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
astore 1
start local 1 16: aload 1
getstatic freemarker.core.BuiltInsForNumbers.BIG_DECIMAL_LONG_MAX:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
ifgt 17
aload 1
getstatic freemarker.core.BuiltInsForNumbers.BIG_DECIMAL_LONG_MIN:Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
ifge 18
17: StackMap locals: java.math.BigDecimal
StackMap stack:
new freemarker.core._TemplateModelException
dup
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "Number doesn't fit into a 64 bit signed integer (long): "
aastore
dup
iconst_1
aload 1
aastore
invokespecial freemarker.core._TemplateModelException.<init>:([Ljava/lang/Object;)V
athrow
18: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.math.BigDecimal.longValue:()J
lreturn
end local 1 19: StackMap locals:
StackMap stack:
aload 0
instanceof java.math.BigInteger
ifeq 24
20: aload 0
checkcast java.math.BigInteger
astore 1
start local 1 21: aload 1
getstatic freemarker.core.BuiltInsForNumbers.BIG_INTEGER_LONG_MAX:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifgt 22
aload 1
getstatic freemarker.core.BuiltInsForNumbers.BIG_INTEGER_LONG_MIN:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifge 23
22: StackMap locals: java.math.BigInteger
StackMap stack:
new freemarker.core._TemplateModelException
dup
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "Number doesn't fit into a 64 bit signed integer (long): "
aastore
dup
iconst_1
aload 1
aastore
invokespecial freemarker.core._TemplateModelException.<init>:([Ljava/lang/Object;)V
athrow
23: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.math.BigInteger.longValue:()J
lreturn
end local 1 24: StackMap locals:
StackMap stack:
aload 0
instanceof java.lang.Long
ifne 25
aload 0
instanceof java.lang.Integer
ifne 25
aload 0
instanceof java.lang.Byte
ifne 25
aload 0
instanceof java.lang.Short
ifeq 26
25: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Number.longValue:()J
lreturn
26: StackMap locals:
StackMap stack:
new freemarker.core._TemplateModelException
dup
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "Unsupported number type: "
aastore
dup
iconst_1
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aastore
invokespecial freemarker.core._TemplateModelException.<init>:([Ljava/lang/Object;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 num Ljava/lang/Number;
2 7 1 d D
9 14 1 f F
16 19 1 bd Ljava/math/BigDecimal;
21 24 1 bi Ljava/math/BigInteger;
Exceptions:
throws freemarker.template.TemplateModelException
MethodParameters:
Name Flags
num
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/BuiltInsForNumbers;
}
SourceFile: "BuiltInsForNumbers.java"
NestMembers:
freemarker.core.BuiltInsForNumbers$abcBI freemarker.core.BuiltInsForNumbers$absBI freemarker.core.BuiltInsForNumbers$byteBI freemarker.core.BuiltInsForNumbers$ceilingBI freemarker.core.BuiltInsForNumbers$doubleBI freemarker.core.BuiltInsForNumbers$floatBI freemarker.core.BuiltInsForNumbers$floorBI freemarker.core.BuiltInsForNumbers$intBI freemarker.core.BuiltInsForNumbers$is_infiniteBI freemarker.core.BuiltInsForNumbers$is_nanBI freemarker.core.BuiltInsForNumbers$longBI freemarker.core.BuiltInsForNumbers$lower_abcBI freemarker.core.BuiltInsForNumbers$number_to_dateBI freemarker.core.BuiltInsForNumbers$roundBI freemarker.core.BuiltInsForNumbers$shortBI freemarker.core.BuiltInsForNumbers$upper_abcBI
InnerClasses:
private abstract abcBI = freemarker.core.BuiltInsForNumbers$abcBI of freemarker.core.BuiltInsForNumbers
absBI = freemarker.core.BuiltInsForNumbers$absBI of freemarker.core.BuiltInsForNumbers
byteBI = freemarker.core.BuiltInsForNumbers$byteBI of freemarker.core.BuiltInsForNumbers
ceilingBI = freemarker.core.BuiltInsForNumbers$ceilingBI of freemarker.core.BuiltInsForNumbers
doubleBI = freemarker.core.BuiltInsForNumbers$doubleBI of freemarker.core.BuiltInsForNumbers
floatBI = freemarker.core.BuiltInsForNumbers$floatBI of freemarker.core.BuiltInsForNumbers
floorBI = freemarker.core.BuiltInsForNumbers$floorBI of freemarker.core.BuiltInsForNumbers
intBI = freemarker.core.BuiltInsForNumbers$intBI of freemarker.core.BuiltInsForNumbers
is_infiniteBI = freemarker.core.BuiltInsForNumbers$is_infiniteBI of freemarker.core.BuiltInsForNumbers
is_nanBI = freemarker.core.BuiltInsForNumbers$is_nanBI of freemarker.core.BuiltInsForNumbers
longBI = freemarker.core.BuiltInsForNumbers$longBI of freemarker.core.BuiltInsForNumbers
lower_abcBI = freemarker.core.BuiltInsForNumbers$lower_abcBI of freemarker.core.BuiltInsForNumbers
number_to_dateBI = freemarker.core.BuiltInsForNumbers$number_to_dateBI of freemarker.core.BuiltInsForNumbers
roundBI = freemarker.core.BuiltInsForNumbers$roundBI of freemarker.core.BuiltInsForNumbers
shortBI = freemarker.core.BuiltInsForNumbers$shortBI of freemarker.core.BuiltInsForNumbers
upper_abcBI = freemarker.core.BuiltInsForNumbers$upper_abcBI of freemarker.core.BuiltInsForNumbers