public class javax.swing.text.NumberFormatter extends javax.swing.text.InternationalFormatter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.swing.text.NumberFormatter
  super_class: javax.swing.text.InternationalFormatter
{
  private java.lang.String specialChars;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.swing.text.NumberFormatter this
         0: .line 105
            aload 0 /* this */
            invokestatic java.text.NumberFormat.getNumberInstance:()Ljava/text/NumberFormat;
            invokespecial javax.swing.text.NumberFormatter.<init>:(Ljava/text/NumberFormat;)V
         1: .line 106
            return
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/swing/text/NumberFormatter;

  public void <init>(java.text.NumberFormat);
    descriptor: (Ljava/text/NumberFormat;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.text.NumberFormatter this
        start local 1 // java.text.NumberFormat format
         0: .line 114
            aload 0 /* this */
            aload 1 /* format */
            invokespecial javax.swing.text.InternationalFormatter.<init>:(Ljava/text/Format;)V
         1: .line 115
            aload 0 /* this */
            aload 1 /* format */
            invokevirtual javax.swing.text.NumberFormatter.setFormat:(Ljava/text/Format;)V
         2: .line 116
            aload 0 /* this */
            iconst_1
            invokevirtual javax.swing.text.NumberFormatter.setAllowsInvalid:(Z)V
         3: .line 117
            aload 0 /* this */
            iconst_0
            invokevirtual javax.swing.text.NumberFormatter.setCommitsOnValidEdit:(Z)V
         4: .line 118
            aload 0 /* this */
            iconst_0
            invokevirtual javax.swing.text.NumberFormatter.setOverwriteMode:(Z)V
         5: .line 119
            return
        end local 1 // java.text.NumberFormat format
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljavax/swing/text/NumberFormatter;
            0    6     1  format  Ljava/text/NumberFormat;
    MethodParameters:
        Name  Flags
      format  

  public void setFormat(java.text.Format);
    descriptor: (Ljava/text/Format;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // javax.swing.text.NumberFormatter this
        start local 1 // java.text.Format format
         0: .line 132
            aload 0 /* this */
            aload 1 /* format */
            invokespecial javax.swing.text.InternationalFormatter.setFormat:(Ljava/text/Format;)V
         1: .line 134
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getDecimalFormatSymbols:()Ljava/text/DecimalFormatSymbols;
            astore 2 /* dfs */
        start local 2 // java.text.DecimalFormatSymbols dfs
         2: .line 136
            aload 2 /* dfs */
            ifnull 16
         3: .line 137
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         4: .line 139
            aload 3 /* sb */
            aload 2 /* dfs */
            invokevirtual java.text.DecimalFormatSymbols.getCurrencySymbol:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 140
            aload 3 /* sb */
            aload 2 /* dfs */
            invokevirtual java.text.DecimalFormatSymbols.getDecimalSeparator:()C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 141
            aload 3 /* sb */
            aload 2 /* dfs */
            invokevirtual java.text.DecimalFormatSymbols.getGroupingSeparator:()C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 142
            aload 3 /* sb */
            aload 2 /* dfs */
            invokevirtual java.text.DecimalFormatSymbols.getInfinity:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 143
            aload 3 /* sb */
            aload 2 /* dfs */
            invokevirtual java.text.DecimalFormatSymbols.getInternationalCurrencySymbol:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 144
            aload 3 /* sb */
            aload 2 /* dfs */
            invokevirtual java.text.DecimalFormatSymbols.getMinusSign:()C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        10: .line 145
            aload 3 /* sb */
            aload 2 /* dfs */
            invokevirtual java.text.DecimalFormatSymbols.getMonetaryDecimalSeparator:()C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        11: .line 146
            aload 3 /* sb */
            aload 2 /* dfs */
            invokevirtual java.text.DecimalFormatSymbols.getNaN:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 147
            aload 3 /* sb */
            aload 2 /* dfs */
            invokevirtual java.text.DecimalFormatSymbols.getPercent:()C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        13: .line 148
            aload 3 /* sb */
            bipush 43
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 149
            aload 0 /* this */
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield javax.swing.text.NumberFormatter.specialChars:Ljava/lang/String;
        end local 3 // java.lang.StringBuilder sb
        15: .line 150
            goto 17
        16: .line 152
      StackMap locals: java.text.DecimalFormatSymbols
      StackMap stack:
            aload 0 /* this */
            ldc ""
            putfield javax.swing.text.NumberFormatter.specialChars:Ljava/lang/String;
        17: .line 154
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.text.DecimalFormatSymbols dfs
        end local 1 // java.text.Format format
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    this  Ljavax/swing/text/NumberFormatter;
            0   18     1  format  Ljava/text/Format;
            2   18     2     dfs  Ljava/text/DecimalFormatSymbols;
            4   15     3      sb  Ljava/lang/StringBuilder;
    MethodParameters:
        Name  Flags
      format  

  java.lang.Object stringToValue(java.lang.String, java.text.Format);
    descriptor: (Ljava/lang/String;Ljava/text/Format;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // javax.swing.text.NumberFormatter this
        start local 1 // java.lang.String text
        start local 2 // java.text.Format f
         0: .line 161
            aload 2 /* f */
            ifnonnull 2
         1: .line 162
            aload 1 /* text */
            areturn
         2: .line 164
      StackMap locals:
      StackMap stack:
            aload 2 /* f */
            aload 1 /* text */
            invokevirtual java.text.Format.parseObject:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* value */
        start local 3 // java.lang.Object value
         3: .line 166
            aload 0 /* this */
            aload 3 /* value */
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getValueClass:()Ljava/lang/Class;
            invokevirtual javax.swing.text.NumberFormatter.convertValueToValueClass:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object value
        end local 2 // java.text.Format f
        end local 1 // java.lang.String text
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljavax/swing/text/NumberFormatter;
            0    4     1   text  Ljava/lang/String;
            0    4     2      f  Ljava/text/Format;
            3    4     3  value  Ljava/lang/Object;
    Exceptions:
      throws java.text.ParseException
    MethodParameters:
      Name  Flags
      text  
      f     

  private  convertValueToValueClass(, java.lang.Class<?>);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // javax.swing.text.NumberFormatter this
        start local 1 // java.lang.Object value
        start local 2 // java.lang.Class valueClass
         0: .line 178
            aload 2 /* valueClass */
            ifnull 14
            aload 1 /* value */
            instanceof java.lang.Number
            ifeq 14
         1: .line 179
            aload 1 /* value */
            checkcast java.lang.Number
            astore 3 /* numberValue */
        start local 3 // java.lang.Number numberValue
         2: .line 180
            aload 2 /* valueClass */
            ldc Ljava/lang/Integer;
            if_acmpne 4
         3: .line 181
            aload 3 /* numberValue */
            invokevirtual java.lang.Number.intValue:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
         4: .line 183
      StackMap locals: java.lang.Number
      StackMap stack:
            aload 2 /* valueClass */
            ldc Ljava/lang/Long;
            if_acmpne 6
         5: .line 184
            aload 3 /* numberValue */
            invokevirtual java.lang.Number.longValue:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
         6: .line 186
      StackMap locals:
      StackMap stack:
            aload 2 /* valueClass */
            ldc Ljava/lang/Float;
            if_acmpne 8
         7: .line 187
            aload 3 /* numberValue */
            invokevirtual java.lang.Number.floatValue:()F
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            areturn
         8: .line 189
      StackMap locals:
      StackMap stack:
            aload 2 /* valueClass */
            ldc Ljava/lang/Double;
            if_acmpne 10
         9: .line 190
            aload 3 /* numberValue */
            invokevirtual java.lang.Number.doubleValue:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            areturn
        10: .line 192
      StackMap locals:
      StackMap stack:
            aload 2 /* valueClass */
            ldc Ljava/lang/Byte;
            if_acmpne 12
        11: .line 193
            aload 3 /* numberValue */
            invokevirtual java.lang.Number.byteValue:()B
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            areturn
        12: .line 195
      StackMap locals:
      StackMap stack:
            aload 2 /* valueClass */
            ldc Ljava/lang/Short;
            if_acmpne 14
        13: .line 196
            aload 3 /* numberValue */
            invokevirtual java.lang.Number.shortValue:()S
            invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
            areturn
        end local 3 // java.lang.Number numberValue
        14: .line 199
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            areturn
        end local 2 // java.lang.Class valueClass
        end local 1 // java.lang.Object value
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0         this  Ljavax/swing/text/NumberFormatter;
            0   15     1        value  Ljava/lang/Object;
            0   15     2   valueClass  Ljava/lang/Class<*>;
            2   14     3  numberValue  Ljava/lang/Number;
    Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;)Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      value       
      valueClass  

  private char getPositiveSign();
    descriptor: ()C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.swing.text.NumberFormatter this
         0: .line 206
            bipush 43
            ireturn
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/text/NumberFormatter;

  private char getMinusSign();
    descriptor: ()C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // javax.swing.text.NumberFormatter this
         0: .line 213
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getDecimalFormatSymbols:()Ljava/text/DecimalFormatSymbols;
            astore 1 /* dfs */
        start local 1 // java.text.DecimalFormatSymbols dfs
         1: .line 215
            aload 1 /* dfs */
            ifnull 3
         2: .line 216
            aload 1 /* dfs */
            invokevirtual java.text.DecimalFormatSymbols.getMinusSign:()C
            ireturn
         3: .line 218
      StackMap locals: java.text.DecimalFormatSymbols
      StackMap stack:
            bipush 45
            ireturn
        end local 1 // java.text.DecimalFormatSymbols dfs
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavax/swing/text/NumberFormatter;
            1    4     1   dfs  Ljava/text/DecimalFormatSymbols;

  private char getDecimalSeparator();
    descriptor: ()C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // javax.swing.text.NumberFormatter this
         0: .line 225
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getDecimalFormatSymbols:()Ljava/text/DecimalFormatSymbols;
            astore 1 /* dfs */
        start local 1 // java.text.DecimalFormatSymbols dfs
         1: .line 227
            aload 1 /* dfs */
            ifnull 3
         2: .line 228
            aload 1 /* dfs */
            invokevirtual java.text.DecimalFormatSymbols.getDecimalSeparator:()C
            ireturn
         3: .line 230
      StackMap locals: java.text.DecimalFormatSymbols
      StackMap stack:
            bipush 46
            ireturn
        end local 1 // java.text.DecimalFormatSymbols dfs
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavax/swing/text/NumberFormatter;
            1    4     1   dfs  Ljava/text/DecimalFormatSymbols;

  private java.text.DecimalFormatSymbols getDecimalFormatSymbols();
    descriptor: ()Ljava/text/DecimalFormatSymbols;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // javax.swing.text.NumberFormatter this
         0: .line 237
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getFormat:()Ljava/text/Format;
            astore 1 /* f */
        start local 1 // java.text.Format f
         1: .line 239
            aload 1 /* f */
            instanceof java.text.DecimalFormat
            ifeq 3
         2: .line 240
            aload 1 /* f */
            checkcast java.text.DecimalFormat
            invokevirtual java.text.DecimalFormat.getDecimalFormatSymbols:()Ljava/text/DecimalFormatSymbols;
            areturn
         3: .line 242
      StackMap locals: java.text.Format
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.text.Format f
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavax/swing/text/NumberFormatter;
            1    4     1     f  Ljava/text/Format;

  boolean isLegalInsertText(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // javax.swing.text.NumberFormatter this
        start local 1 // java.lang.String text
         0: .line 252
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getAllowsInvalid:()Z
            ifeq 2
         1: .line 253
            iconst_1
            ireturn
         2: .line 255
      StackMap locals:
      StackMap stack:
            aload 1 /* text */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            istore 2 /* counter */
        start local 2 // int counter
         3: goto 9
         4: .line 256
      StackMap locals: int
      StackMap stack:
            aload 1 /* text */
            iload 2 /* counter */
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* aChar */
        start local 3 // char aChar
         5: .line 258
            iload 3 /* aChar */
            invokestatic java.lang.Character.isDigit:(C)Z
            ifne 8
         6: .line 259
            aload 0 /* this */
            getfield javax.swing.text.NumberFormatter.specialChars:Ljava/lang/String;
            iload 3 /* aChar */
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 8
         7: .line 260
            iconst_0
            ireturn
        end local 3 // char aChar
         8: .line 255
      StackMap locals:
      StackMap stack:
            iinc 2 /* counter */ -1
      StackMap locals:
      StackMap stack:
         9: iload 2 /* counter */
            ifge 4
        end local 2 // int counter
        10: .line 263
            iconst_1
            ireturn
        end local 1 // java.lang.String text
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Ljavax/swing/text/NumberFormatter;
            0   11     1     text  Ljava/lang/String;
            3   10     2  counter  I
            5    8     3    aChar  C
    MethodParameters:
      Name  Flags
      text  

  boolean isLiteral(java.util.Map<?, ?>);
    descriptor: (Ljava/util/Map;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.swing.text.NumberFormatter this
        start local 1 // java.util.Map attrs
         0: .line 271
            aload 0 /* this */
            aload 1 /* attrs */
            invokespecial javax.swing.text.InternationalFormatter.isLiteral:(Ljava/util/Map;)Z
            ifne 20
         1: .line 272
            aload 1 /* attrs */
            ifnonnull 3
         2: .line 273
            iconst_0
            ireturn
         3: .line 275
      StackMap locals:
      StackMap stack:
            aload 1 /* attrs */
            invokeinterface java.util.Map.size:()I
            istore 2 /* size */
        start local 2 // int size
         4: .line 277
            aload 1 /* attrs */
            getstatic java.text.NumberFormat$Field.GROUPING_SEPARATOR:Ljava/text/NumberFormat$Field;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 8
         5: .line 278
            iinc 2 /* size */ -1
         6: .line 279
            aload 1 /* attrs */
            getstatic java.text.NumberFormat$Field.INTEGER:Ljava/text/NumberFormat$Field;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 8
         7: .line 280
            iinc 2 /* size */ -1
         8: .line 283
      StackMap locals: int
      StackMap stack:
            aload 1 /* attrs */
            getstatic java.text.NumberFormat$Field.EXPONENT_SYMBOL:Ljava/text/NumberFormat$Field;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 10
         9: .line 284
            iinc 2 /* size */ -1
        10: .line 286
      StackMap locals:
      StackMap stack:
            aload 1 /* attrs */
            getstatic java.text.NumberFormat$Field.PERCENT:Ljava/text/NumberFormat$Field;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 12
        11: .line 287
            iinc 2 /* size */ -1
        12: .line 289
      StackMap locals:
      StackMap stack:
            aload 1 /* attrs */
            getstatic java.text.NumberFormat$Field.PERMILLE:Ljava/text/NumberFormat$Field;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 14
        13: .line 290
            iinc 2 /* size */ -1
        14: .line 292
      StackMap locals:
      StackMap stack:
            aload 1 /* attrs */
            getstatic java.text.NumberFormat$Field.CURRENCY:Ljava/text/NumberFormat$Field;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 16
        15: .line 293
            iinc 2 /* size */ -1
        16: .line 295
      StackMap locals:
      StackMap stack:
            aload 1 /* attrs */
            getstatic java.text.NumberFormat$Field.SIGN:Ljava/text/NumberFormat$Field;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 18
        17: .line 296
            iinc 2 /* size */ -1
        18: .line 298
      StackMap locals:
      StackMap stack:
            iload 2 /* size */
            ifne 19
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        19: iconst_0
            ireturn
        end local 2 // int size
        20: .line 300
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // java.util.Map attrs
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   21     0   this  Ljavax/swing/text/NumberFormatter;
            0   21     1  attrs  Ljava/util/Map<**>;
            4   20     2   size  I
    Signature: (Ljava/util/Map<**>;)Z
    MethodParameters:
       Name  Flags
      attrs  

  boolean isNavigatable(int);
    descriptor: (I)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.text.NumberFormatter this
        start local 1 // int index
         0: .line 309
            aload 0 /* this */
            iload 1 /* index */
            invokespecial javax.swing.text.InternationalFormatter.isNavigatable:(I)Z
            ifne 3
         1: .line 311
            aload 0 /* this */
            iload 1 /* index */
            invokevirtual javax.swing.text.NumberFormatter.getBufferedChar:(I)C
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getDecimalSeparator:()C
            if_icmpne 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 313
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // int index
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljavax/swing/text/NumberFormatter;
            0    4     1  index  I
    MethodParameters:
       Name  Flags
      index  

  private java.text.NumberFormat$Field getFieldFrom(int, int);
    descriptor: (II)Ljava/text/NumberFormat$Field;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=3
        start local 0 // javax.swing.text.NumberFormatter this
        start local 1 // int index
        start local 2 // int direction
         0: .line 321
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.isValidMask:()Z
            ifeq 16
         1: .line 322
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getFormattedTextField:()Ljavax/swing/JFormattedTextField;
            invokevirtual javax.swing.JFormattedTextField.getDocument:()Ljavax/swing/text/Document;
            invokeinterface javax.swing.text.Document.getLength:()I
            istore 3 /* max */
        start local 3 // int max
         2: .line 323
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getIterator:()Ljava/text/AttributedCharacterIterator;
            astore 4 /* iterator */
        start local 4 // java.text.AttributedCharacterIterator iterator
         3: .line 325
            iload 1 /* index */
            iload 3 /* max */
            if_icmplt 15
         4: .line 326
            iload 1 /* index */
            iload 2 /* direction */
            iadd
            istore 1 /* index */
         5: .line 328
            goto 15
         6: .line 329
      StackMap locals: int java.text.AttributedCharacterIterator
      StackMap stack:
            aload 4 /* iterator */
            iload 1 /* index */
            invokeinterface java.text.AttributedCharacterIterator.setIndex:(I)C
            pop
         7: .line 331
            aload 4 /* iterator */
            invokeinterface java.text.AttributedCharacterIterator.getAttributes:()Ljava/util/Map;
            astore 5 /* attrs */
        start local 5 // java.util.Map attrs
         8: .line 333
            aload 5 /* attrs */
            ifnull 14
            aload 5 /* attrs */
            invokeinterface java.util.Map.size:()I
            ifle 14
         9: .line 334
            aload 5 /* attrs */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 13
      StackMap locals: javax.swing.text.NumberFormatter int int int java.text.AttributedCharacterIterator java.util.Map top java.util.Iterator
      StackMap stack:
        10: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 6 /* key */
        start local 6 // java.lang.Object key
        11: .line 335
            aload 6 /* key */
            instanceof java.text.NumberFormat$Field
            ifeq 13
        12: .line 336
            aload 6 /* key */
            checkcast java.text.NumberFormat$Field
            areturn
        end local 6 // java.lang.Object key
        13: .line 334
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        14: .line 340
      StackMap locals: javax.swing.text.NumberFormatter int int int java.text.AttributedCharacterIterator java.util.Map
      StackMap stack:
            iload 1 /* index */
            iload 2 /* direction */
            iadd
            istore 1 /* index */
        end local 5 // java.util.Map attrs
        15: .line 328
      StackMap locals:
      StackMap stack:
            iload 1 /* index */
            iflt 16
            iload 1 /* index */
            iload 3 /* max */
            if_icmplt 6
        end local 4 // java.text.AttributedCharacterIterator iterator
        end local 3 // int max
        16: .line 343
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // int direction
        end local 1 // int index
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Ljavax/swing/text/NumberFormatter;
            0   17     1      index  I
            0   17     2  direction  I
            2   16     3        max  I
            3   16     4   iterator  Ljava/text/AttributedCharacterIterator;
            8   15     5      attrs  Ljava/util/Map<**>;
           11   13     6        key  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      index      
      direction  

  void replace(javax.swing.text.DocumentFilter$FilterBypass, int, int, java.lang.String, javax.swing.text.AttributeSet);
    descriptor: (Ljavax/swing/text/DocumentFilter$FilterBypass;IILjava/lang/String;Ljavax/swing/text/AttributeSet;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // javax.swing.text.NumberFormatter this
        start local 1 // javax.swing.text.DocumentFilter$FilterBypass fb
        start local 2 // int offset
        start local 3 // int length
        start local 4 // java.lang.String string
        start local 5 // javax.swing.text.AttributeSet attr
         0: .line 352
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getAllowsInvalid:()Z
            ifne 4
            iload 3 /* length */
            ifne 4
            aload 4 /* string */
            ifnull 4
         1: .line 353
            aload 4 /* string */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 4
         2: .line 354
            aload 0 /* this */
            aload 1 /* fb */
            iload 2 /* offset */
            aload 4 /* string */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual javax.swing.text.NumberFormatter.toggleSignIfNecessary:(Ljavax/swing/text/DocumentFilter$FilterBypass;IC)Z
            ifeq 4
         3: .line 355
            return
         4: .line 357
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fb */
            iload 2 /* offset */
            iload 3 /* length */
            aload 4 /* string */
            aload 5 /* attr */
            invokespecial javax.swing.text.InternationalFormatter.replace:(Ljavax/swing/text/DocumentFilter$FilterBypass;IILjava/lang/String;Ljavax/swing/text/AttributeSet;)V
         5: .line 358
            return
        end local 5 // javax.swing.text.AttributeSet attr
        end local 4 // java.lang.String string
        end local 3 // int length
        end local 2 // int offset
        end local 1 // javax.swing.text.DocumentFilter$FilterBypass fb
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljavax/swing/text/NumberFormatter;
            0    6     1      fb  Ljavax/swing/text/DocumentFilter$FilterBypass;
            0    6     2  offset  I
            0    6     3  length  I
            0    6     4  string  Ljava/lang/String;
            0    6     5    attr  Ljavax/swing/text/AttributeSet;
    Exceptions:
      throws javax.swing.text.BadLocationException
    MethodParameters:
        Name  Flags
      fb      
      offset  
      length  
      string  
      attr    

  private boolean toggleSignIfNecessary(javax.swing.text.DocumentFilter$FilterBypass, int, char);
    descriptor: (Ljavax/swing/text/DocumentFilter$FilterBypass;IC)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // javax.swing.text.NumberFormatter this
        start local 1 // javax.swing.text.DocumentFilter$FilterBypass fb
        start local 2 // int offset
        start local 3 // char aChar
         0: .line 368
            iload 3 /* aChar */
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getMinusSign:()C
            if_icmpeq 1
            iload 3 /* aChar */
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getPositiveSign:()C
            if_icmpne 23
         1: .line 369
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* offset */
            iconst_m1
            invokevirtual javax.swing.text.NumberFormatter.getFieldFrom:(II)Ljava/text/NumberFormat$Field;
            astore 4 /* field */
        start local 4 // java.text.NumberFormat$Field field
         2: .line 373
            aload 4 /* field */
            ifnull 6
         3: .line 374
            aload 4 /* field */
            getstatic java.text.NumberFormat$Field.EXPONENT:Ljava/text/NumberFormat$Field;
            if_acmpeq 10
         4: .line 375
            aload 4 /* field */
            getstatic java.text.NumberFormat$Field.EXPONENT_SYMBOL:Ljava/text/NumberFormat$Field;
            if_acmpeq 10
         5: .line 376
            aload 4 /* field */
            getstatic java.text.NumberFormat$Field.EXPONENT_SIGN:Ljava/text/NumberFormat$Field;
            if_acmpeq 10
         6: .line 377
      StackMap locals: java.text.NumberFormat$Field
      StackMap stack:
            aload 0 /* this */
            iload 3 /* aChar */
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getPositiveSign:()C
            if_icmpne 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack: javax.swing.text.NumberFormatter
         7: iconst_0
      StackMap locals: javax.swing.text.NumberFormatter javax.swing.text.DocumentFilter$FilterBypass int int java.text.NumberFormat$Field
      StackMap stack: javax.swing.text.NumberFormatter int
         8: invokevirtual javax.swing.text.NumberFormatter.toggleSign:(Z)Ljava/lang/Object;
            astore 5 /* newValue */
        start local 5 // java.lang.Object newValue
         9: .line 378
            goto 11
        end local 5 // java.lang.Object newValue
        10: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* offset */
            iload 3 /* aChar */
            invokevirtual javax.swing.text.NumberFormatter.toggleExponentSign:(IC)Ljava/lang/Object;
            astore 5 /* newValue */
        start local 5 // java.lang.Object newValue
        11: .line 383
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 5 /* newValue */
            ifnull 23
            aload 0 /* this */
            aload 5 /* newValue */
            iconst_0
            invokevirtual javax.swing.text.NumberFormatter.isValidValue:(Ljava/lang/Object;Z)Z
            ifeq 23
        12: .line 384
            aload 0 /* this */
            iload 2 /* offset */
            invokevirtual javax.swing.text.NumberFormatter.getLiteralCountTo:(I)I
            istore 6 /* lc */
        start local 6 // int lc
        13: .line 385
            aload 0 /* this */
            aload 5 /* newValue */
            invokevirtual javax.swing.text.NumberFormatter.valueToString:(Ljava/lang/Object;)Ljava/lang/String;
            astore 7 /* string */
        start local 7 // java.lang.String string
        14: .line 387
            aload 1 /* fb */
            iconst_0
            aload 1 /* fb */
            invokevirtual javax.swing.text.DocumentFilter$FilterBypass.getDocument:()Ljavax/swing/text/Document;
            invokeinterface javax.swing.text.Document.getLength:()I
            invokevirtual javax.swing.text.DocumentFilter$FilterBypass.remove:(II)V
        15: .line 388
            aload 1 /* fb */
            iconst_0
            aload 7 /* string */
            aconst_null
            invokevirtual javax.swing.text.DocumentFilter$FilterBypass.insertString:(ILjava/lang/String;Ljavax/swing/text/AttributeSet;)V
        16: .line 389
            aload 0 /* this */
            aload 5 /* newValue */
            invokevirtual javax.swing.text.NumberFormatter.updateValue:(Ljava/lang/Object;)V
        17: .line 390
            aload 0 /* this */
            aload 0 /* this */
            iload 2 /* offset */
            invokevirtual javax.swing.text.NumberFormatter.getLiteralCountTo:(I)I
        18: .line 391
            iload 6 /* lc */
            isub
            iload 2 /* offset */
            iadd
            iconst_1
        19: .line 390
            invokevirtual javax.swing.text.NumberFormatter.repositionCursor:(II)V
        20: .line 392
            iconst_1
            ireturn
        end local 7 // java.lang.String string
        end local 6 // int lc
        end local 5 // java.lang.Object newValue
        21: .line 394
      StackMap locals: javax.swing.text.NumberFormatter javax.swing.text.DocumentFilter$FilterBypass int int java.text.NumberFormat$Field
      StackMap stack: java.text.ParseException
            pop
        22: .line 395
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.invalidEdit:()V
        end local 4 // java.text.NumberFormat$Field field
        23: .line 398
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // char aChar
        end local 2 // int offset
        end local 1 // javax.swing.text.DocumentFilter$FilterBypass fb
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Ljavax/swing/text/NumberFormatter;
            0   24     1        fb  Ljavax/swing/text/DocumentFilter$FilterBypass;
            0   24     2    offset  I
            0   24     3     aChar  C
            2   23     4     field  Ljava/text/NumberFormat$Field;
            9   10     5  newValue  Ljava/lang/Object;
           11   21     5  newValue  Ljava/lang/Object;
           13   21     6        lc  I
           14   21     7    string  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2    20      21  Class java.text.ParseException
    Exceptions:
      throws javax.swing.text.BadLocationException
    MethodParameters:
        Name  Flags
      fb      
      offset  
      aChar   

  private java.lang.Object toggleSign(boolean);
    descriptor: (Z)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // javax.swing.text.NumberFormatter this
        start local 1 // boolean positive
         0: .line 406
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getFormattedTextField:()Ljavax/swing/JFormattedTextField;
            invokevirtual javax.swing.JFormattedTextField.getText:()Ljava/lang/String;
            invokevirtual javax.swing.text.NumberFormatter.stringToValue:(Ljava/lang/String;)Ljava/lang/Object;
            astore 2 /* value */
        start local 2 // java.lang.Object value
         1: .line 408
            aload 2 /* value */
            ifnull 26
         2: .line 411
            aload 2 /* value */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 3 /* string */
        start local 3 // java.lang.String string
         3: .line 413
            aload 3 /* string */
            ifnull 26
            aload 3 /* string */
            invokevirtual java.lang.String.length:()I
            ifle 26
         4: .line 414
            iload 1 /* positive */
            ifeq 8
         5: .line 415
            aload 3 /* string */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 45
            if_icmpne 12
         6: .line 416
            aload 3 /* string */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* string */
         7: .line 418
            goto 12
         8: .line 420
      StackMap locals: java.lang.Object java.lang.String
      StackMap stack:
            aload 3 /* string */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 43
            if_icmpne 10
         9: .line 421
            aload 3 /* string */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* string */
        10: .line 423
      StackMap locals:
      StackMap stack:
            aload 3 /* string */
            invokevirtual java.lang.String.length:()I
            ifle 12
            aload 3 /* string */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 45
            if_icmpeq 12
        11: .line 424
            new java.lang.StringBuilder
            dup
            ldc "-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* string */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* string */
        12: .line 427
      StackMap locals:
      StackMap stack:
            aload 3 /* string */
            ifnull 26
        13: .line 428
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getValueClass:()Ljava/lang/Class;
            astore 4 /* valueClass */
        start local 4 // java.lang.Class valueClass
        14: .line 430
            aload 4 /* valueClass */
            ifnonnull 16
        15: .line 431
            aload 2 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 4 /* valueClass */
        16: .line 434
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 4 /* valueClass */
            invokestatic sun.reflect.misc.ReflectUtil.checkPackageAccess:(Ljava/lang/Class;)V
        17: .line 435
            aload 4 /* valueClass */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic sun.swing.SwingUtilities2.checkAccess:(I)V
        18: .line 436
            aload 4 /* valueClass */
        19: .line 437
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
        20: .line 436
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 5 /* cons */
        start local 5 // java.lang.reflect.Constructor cons
        21: .line 438
            aload 5 /* cons */
            ifnull 26
        22: .line 439
            aload 5 /* cons */
            invokevirtual java.lang.reflect.Constructor.getModifiers:()I
            invokestatic sun.swing.SwingUtilities2.checkAccess:(I)V
        23: .line 440
            aload 5 /* cons */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* string */
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
        24: areturn
        end local 5 // java.lang.reflect.Constructor cons
        25: .line 442
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
        end local 4 // java.lang.Class valueClass
        end local 3 // java.lang.String string
        26: .line 446
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Object value
        end local 1 // boolean positive
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   27     0        this  Ljavax/swing/text/NumberFormatter;
            0   27     1    positive  Z
            1   27     2       value  Ljava/lang/Object;
            3   26     3      string  Ljava/lang/String;
           14   26     4  valueClass  Ljava/lang/Class<*>;
           21   25     5        cons  Ljava/lang/reflect/Constructor<*>;
      Exception table:
        from    to  target  type
          16    24      25  Class java.lang.Throwable
    Exceptions:
      throws java.text.ParseException
    MethodParameters:
          Name  Flags
      positive  

  private java.lang.Object toggleExponentSign(int, char);
    descriptor: (IC)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=6, args_size=3
        start local 0 // javax.swing.text.NumberFormatter this
        start local 1 // int offset
        start local 2 // char aChar
         0: .line 455
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getFormattedTextField:()Ljavax/swing/JFormattedTextField;
            invokevirtual javax.swing.JFormattedTextField.getText:()Ljava/lang/String;
            astore 3 /* string */
        start local 3 // java.lang.String string
         1: .line 456
            iconst_0
            istore 4 /* replaceLength */
        start local 4 // int replaceLength
         2: .line 457
            aload 0 /* this */
            getstatic java.text.NumberFormat$Field.EXPONENT_SIGN:Ljava/text/NumberFormat$Field;
            invokevirtual javax.swing.text.NumberFormatter.getAttributeStart:(Ljava/text/AttributedCharacterIterator$Attribute;)I
            istore 5 /* loc */
        start local 5 // int loc
         3: .line 459
            iload 5 /* loc */
            iflt 6
         4: .line 460
            iconst_1
            istore 4 /* replaceLength */
         5: .line 461
            iload 5 /* loc */
            istore 1 /* offset */
         6: .line 463
      StackMap locals: java.lang.String int int
      StackMap stack:
            iload 2 /* aChar */
            aload 0 /* this */
            invokevirtual javax.swing.text.NumberFormatter.getPositiveSign:()C
            if_icmpne 9
         7: .line 464
            aload 0 /* this */
            iload 1 /* offset */
            iload 4 /* replaceLength */
            aconst_null
            invokevirtual javax.swing.text.NumberFormatter.getReplaceString:(IILjava/lang/String;)Ljava/lang/String;
            astore 3 /* string */
         8: .line 465
            goto 12
         9: .line 467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* offset */
            iload 4 /* replaceLength */
        10: .line 468
            new java.lang.String
            dup
            iconst_1
            newarray 5
            dup
            iconst_0
            iload 2 /* aChar */
            castore
            invokespecial java.lang.String.<init>:([C)V
        11: .line 467
            invokevirtual javax.swing.text.NumberFormatter.getReplaceString:(IILjava/lang/String;)Ljava/lang/String;
            astore 3 /* string */
        12: .line 470
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* string */
            invokevirtual javax.swing.text.NumberFormatter.stringToValue:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 5 // int loc
        end local 4 // int replaceLength
        end local 3 // java.lang.String string
        end local 2 // char aChar
        end local 1 // int offset
        end local 0 // javax.swing.text.NumberFormatter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           this  Ljavax/swing/text/NumberFormatter;
            0   13     1         offset  I
            0   13     2          aChar  C
            1   13     3         string  Ljava/lang/String;
            2   13     4  replaceLength  I
            3   13     5            loc  I
    Exceptions:
      throws javax.swing.text.BadLocationException, java.text.ParseException
    MethodParameters:
        Name  Flags
      offset  
      aChar   
}
SourceFile: "NumberFormatter.java"
InnerClasses:
  public Attribute = java.text.AttributedCharacterIterator$Attribute of java.text.AttributedCharacterIterator
  public Field = java.text.NumberFormat$Field of java.text.NumberFormat
  public abstract FilterBypass = javax.swing.text.DocumentFilter$FilterBypass of javax.swing.text.DocumentFilter