class freemarker.core.BuiltInsForNumbers$absBI extends freemarker.core.BuiltInForNumber
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: freemarker.core.BuiltInsForNumbers$absBI
  super_class: freemarker.core.BuiltInForNumber
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.BuiltInsForNumbers$absBI this
         0: .line 84
            aload 0 /* this */
            invokespecial freemarker.core.BuiltInForNumber.<init>:()V
            return
        end local 0 // freemarker.core.BuiltInsForNumbers$absBI this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/BuiltInsForNumbers$absBI;

  freemarker.template.TemplateModel calculateResult(java.lang.Number, freemarker.template.TemplateModel);
    descriptor: (Ljava/lang/Number;Lfreemarker/template/TemplateModel;)Lfreemarker/template/TemplateModel;
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // freemarker.core.BuiltInsForNumbers$absBI this
        start local 1 // java.lang.Number num
        start local 2 // freemarker.template.TemplateModel model
         0: .line 87
            aload 1 /* num */
            instanceof java.lang.Integer
            ifeq 5
         1: .line 88
            aload 1 /* num */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 3 /* n */
        start local 3 // int n
         2: .line 89
            iload 3 /* n */
            ifge 4
         3: .line 90
            new freemarker.template.SimpleNumber
            dup
            iload 3 /* n */
            ineg
            invokespecial freemarker.template.SimpleNumber.<init>:(I)V
            areturn
         4: .line 92
      StackMap locals: int
      StackMap stack:
            aload 2 /* model */
            areturn
        end local 3 // int n
         5: .line 94
      StackMap locals:
      StackMap stack:
            aload 1 /* num */
            instanceof java.math.BigDecimal
            ifeq 10
         6: .line 95
            aload 1 /* num */
            checkcast java.math.BigDecimal
            astore 3 /* n */
        start local 3 // java.math.BigDecimal n
         7: .line 96
            aload 3 /* n */
            invokevirtual java.math.BigDecimal.signum:()I
            ifge 9
         8: .line 97
            new freemarker.template.SimpleNumber
            dup
            aload 3 /* n */
            invokevirtual java.math.BigDecimal.negate:()Ljava/math/BigDecimal;
            invokespecial freemarker.template.SimpleNumber.<init>:(Ljava/lang/Number;)V
            areturn
         9: .line 99
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 2 /* model */
            areturn
        end local 3 // java.math.BigDecimal n
        10: .line 101
      StackMap locals:
      StackMap stack:
            aload 1 /* num */
            instanceof java.lang.Double
            ifeq 15
        11: .line 102
            aload 1 /* num */
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            dstore 3 /* n */
        start local 3 // double n
        12: .line 103
            dload 3 /* n */
            dconst_0
            dcmpg
            ifge 14
        13: .line 104
            new freemarker.template.SimpleNumber
            dup
            dload 3 /* n */
            dneg
            invokespecial freemarker.template.SimpleNumber.<init>:(D)V
            areturn
        14: .line 106
      StackMap locals: double
      StackMap stack:
            aload 2 /* model */
            areturn
        end local 3 // double n
        15: .line 108
      StackMap locals:
      StackMap stack:
            aload 1 /* num */
            instanceof java.lang.Float
            ifeq 20
        16: .line 109
            aload 1 /* num */
            checkcast java.lang.Float
            invokevirtual java.lang.Float.floatValue:()F
            fstore 3 /* n */
        start local 3 // float n
        17: .line 110
            fload 3 /* n */
            fconst_0
            fcmpg
            ifge 19
        18: .line 111
            new freemarker.template.SimpleNumber
            dup
            fload 3 /* n */
            fneg
            invokespecial freemarker.template.SimpleNumber.<init>:(F)V
            areturn
        19: .line 113
      StackMap locals: float
      StackMap stack:
            aload 2 /* model */
            areturn
        end local 3 // float n
        20: .line 115
      StackMap locals:
      StackMap stack:
            aload 1 /* num */
            instanceof java.lang.Long
            ifeq 25
        21: .line 116
            aload 1 /* num */
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lstore 3 /* n */
        start local 3 // long n
        22: .line 117
            lload 3 /* n */
            lconst_0
            lcmp
            ifge 24
        23: .line 118
            new freemarker.template.SimpleNumber
            dup
            lload 3 /* n */
            lneg
            invokespecial freemarker.template.SimpleNumber.<init>:(J)V
            areturn
        24: .line 120
      StackMap locals: long
      StackMap stack:
            aload 2 /* model */
            areturn
        end local 3 // long n
        25: .line 122
      StackMap locals:
      StackMap stack:
            aload 1 /* num */
            instanceof java.lang.Short
            ifeq 30
        26: .line 123
            aload 1 /* num */
            checkcast java.lang.Short
            invokevirtual java.lang.Short.shortValue:()S
            istore 3 /* n */
        start local 3 // short n
        27: .line 124
            iload 3 /* n */
            ifge 29
        28: .line 125
            new freemarker.template.SimpleNumber
            dup
            iload 3 /* n */
            ineg
            invokespecial freemarker.template.SimpleNumber.<init>:(I)V
            areturn
        29: .line 127
      StackMap locals: int
      StackMap stack:
            aload 2 /* model */
            areturn
        end local 3 // short n
        30: .line 129
      StackMap locals:
      StackMap stack:
            aload 1 /* num */
            instanceof java.lang.Byte
            ifeq 35
        31: .line 130
            aload 1 /* num */
            checkcast java.lang.Byte
            invokevirtual java.lang.Byte.byteValue:()B
            istore 3 /* n */
        start local 3 // byte n
        32: .line 131
            iload 3 /* n */
            ifge 34
        33: .line 132
            new freemarker.template.SimpleNumber
            dup
            iload 3 /* n */
            ineg
            invokespecial freemarker.template.SimpleNumber.<init>:(I)V
            areturn
        34: .line 134
      StackMap locals: int
      StackMap stack:
            aload 2 /* model */
            areturn
        end local 3 // byte n
        35: .line 136
      StackMap locals:
      StackMap stack:
            aload 1 /* num */
            instanceof java.math.BigInteger
            ifeq 40
        36: .line 137
            aload 1 /* num */
            checkcast java.math.BigInteger
            astore 3 /* n */
        start local 3 // java.math.BigInteger n
        37: .line 138
            aload 3 /* n */
            invokevirtual java.math.BigInteger.signum:()I
            ifge 39
        38: .line 139
            new freemarker.template.SimpleNumber
            dup
            aload 3 /* n */
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            invokespecial freemarker.template.SimpleNumber.<init>:(Ljava/lang/Number;)V
            areturn
        39: .line 141
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 2 /* model */
            areturn
        end local 3 // java.math.BigInteger n
        40: .line 144
      StackMap locals:
      StackMap stack:
            new freemarker.core._TemplateModelException
            dup
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Unsupported number class: "
            aastore
            dup
            iconst_1
            aload 1 /* num */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aastore
            invokespecial freemarker.core._TemplateModelException.<init>:([Ljava/lang/Object;)V
            athrow
        end local 2 // freemarker.template.TemplateModel model
        end local 1 // java.lang.Number num
        end local 0 // freemarker.core.BuiltInsForNumbers$absBI this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   41     0   this  Lfreemarker/core/BuiltInsForNumbers$absBI;
            0   41     1    num  Ljava/lang/Number;
            0   41     2  model  Lfreemarker/template/TemplateModel;
            2    5     3      n  I
            7   10     3      n  Ljava/math/BigDecimal;
           12   15     3      n  D
           17   20     3      n  F
           22   25     3      n  J
           27   30     3      n  S
           32   35     3      n  B
           37   40     3      n  Ljava/math/BigInteger;
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
       Name  Flags
      num    
      model  
}
SourceFile: "BuiltInsForNumbers.java"
NestHost: freemarker.core.BuiltInsForNumbers
InnerClasses:
  absBI = freemarker.core.BuiltInsForNumbers$absBI of freemarker.core.BuiltInsForNumbers