public class javax.management.monitor.GaugeMonitor extends javax.management.monitor.Monitor implements javax.management.monitor.GaugeMonitorMBean
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.management.monitor.GaugeMonitor
  super_class: javax.management.monitor.Monitor
{
  private java.lang.Number highThreshold;
    descriptor: Ljava/lang/Number;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Number lowThreshold;
    descriptor: Ljava/lang/Number;
    flags: (0x0002) ACC_PRIVATE

  private boolean notifyHigh;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean notifyLow;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean differenceMode;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static final java.lang.String[] types;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final javax.management.MBeanNotificationInfo[] notifsInfo;
    descriptor: [Ljavax/management/MBeanNotificationInfo;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int RISING;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int FALLING;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int RISING_OR_FALLING;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static volatile int[] $SWITCH_TABLE$javax$management$monitor$Monitor$NumericalType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=0, args_size=0
         0: .line 181
            bipush 7
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 182
            ldc "jmx.monitor.error.runtime"
            aastore
            dup
            iconst_1
         2: .line 183
            ldc "jmx.monitor.error.mbean"
            aastore
            dup
            iconst_2
         3: .line 184
            ldc "jmx.monitor.error.attribute"
            aastore
            dup
            iconst_3
         4: .line 185
            ldc "jmx.monitor.error.type"
            aastore
            dup
            iconst_4
         5: .line 186
            ldc "jmx.monitor.error.threshold"
            aastore
            dup
            iconst_5
         6: .line 187
            ldc "jmx.monitor.gauge.high"
            aastore
            dup
            bipush 6
         7: .line 188
            ldc "jmx.monitor.gauge.low"
            aastore
         8: .line 181
            putstatic javax.management.monitor.GaugeMonitor.types:[Ljava/lang/String;
         9: .line 191
            iconst_1
            anewarray javax.management.MBeanNotificationInfo
            dup
            iconst_0
        10: .line 192
            new javax.management.MBeanNotificationInfo
            dup
        11: .line 193
            getstatic javax.management.monitor.GaugeMonitor.types:[Ljava/lang/String;
        12: .line 194
            ldc "javax.management.monitor.MonitorNotification"
        13: .line 195
            ldc "Notifications sent by the GaugeMonitor MBean"
        14: .line 192
            invokespecial javax.management.MBeanNotificationInfo.<init>:([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            aastore
        15: .line 191
            putstatic javax.management.monitor.GaugeMonitor.notifsInfo:[Ljavax/management/MBeanNotificationInfo;
        16: .line 202
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.management.monitor.GaugeMonitor this
         0: .line 213
            aload 0 /* this */
            invokespecial javax.management.monitor.Monitor.<init>:()V
         1: .line 145
            aload 0 /* this */
            getstatic javax.management.monitor.GaugeMonitor.INTEGER_ZERO:Ljava/lang/Integer;
            putfield javax.management.monitor.GaugeMonitor.highThreshold:Ljava/lang/Number;
         2: .line 152
            aload 0 /* this */
            getstatic javax.management.monitor.GaugeMonitor.INTEGER_ZERO:Ljava/lang/Integer;
            putfield javax.management.monitor.GaugeMonitor.lowThreshold:Ljava/lang/Number;
         3: .line 160
            aload 0 /* this */
            iconst_0
            putfield javax.management.monitor.GaugeMonitor.notifyHigh:Z
         4: .line 168
            aload 0 /* this */
            iconst_0
            putfield javax.management.monitor.GaugeMonitor.notifyLow:Z
         5: .line 179
            aload 0 /* this */
            iconst_0
            putfield javax.management.monitor.GaugeMonitor.differenceMode:Z
         6: .line 214
            return
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljavax/management/monitor/GaugeMonitor;

  public synchronized void start();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // javax.management.monitor.GaugeMonitor this
         0: .line 226
            aload 0 /* this */
            invokevirtual javax.management.monitor.GaugeMonitor.isActive:()Z
            ifeq 3
         1: .line 227
            getstatic com.sun.jmx.defaults.JmxProperties.MONITOR_LOGGER:Ljava/lang/System$Logger;
            getstatic java.lang.System$Logger$Level.TRACE:Ljava/lang/System$Logger$Level;
            ldc "the monitor is already active"
            invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
         2: .line 228
            return
         3: .line 232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.observedObjects:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 9
      StackMap locals: javax.management.monitor.GaugeMonitor top java.util.Iterator
      StackMap stack:
         4: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.monitor.Monitor$ObservedObject
            astore 1 /* o */
        start local 1 // javax.management.monitor.Monitor$ObservedObject o
         5: .line 234
            aload 1 /* o */
            checkcast javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject
         6: .line 233
            astore 3 /* gmo */
        start local 3 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject gmo
         7: .line 235
            aload 3 /* gmo */
            iconst_2
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setStatus:(I)V
         8: .line 236
            aload 3 /* gmo */
            aconst_null
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setPreviousScanGauge:(Ljava/lang/Number;)V
        end local 3 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject gmo
        end local 1 // javax.management.monitor.Monitor$ObservedObject o
         9: .line 232
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        10: .line 238
            aload 0 /* this */
            invokevirtual javax.management.monitor.GaugeMonitor.doStart:()V
        11: .line 239
            return
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljavax/management/monitor/GaugeMonitor;
            5    9     1     o  Ljavax/management/monitor/Monitor$ObservedObject;
            7    9     3   gmo  Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;

  public synchronized void stop();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.monitor.GaugeMonitor this
         0: .line 245
            aload 0 /* this */
            invokevirtual javax.management.monitor.GaugeMonitor.doStop:()V
         1: .line 246
            return
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/management/monitor/GaugeMonitor;

  public synchronized java.lang.Number getDerivedGauge(javax.management.ObjectName);
    descriptor: (Ljavax/management/ObjectName;)Ljava/lang/Number;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // javax.management.ObjectName object
         0: .line 262
            aload 0 /* this */
            aload 1 /* object */
            invokespecial javax.management.monitor.Monitor.getDerivedGauge:(Ljavax/management/ObjectName;)Ljava/lang/Object;
            checkcast java.lang.Number
            areturn
        end local 1 // javax.management.ObjectName object
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljavax/management/monitor/GaugeMonitor;
            0    1     1  object  Ljavax/management/ObjectName;
    MethodParameters:
        Name  Flags
      object  

  public synchronized long getDerivedGaugeTimeStamp(javax.management.ObjectName);
    descriptor: (Ljavax/management/ObjectName;)J
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // javax.management.ObjectName object
         0: .line 278
            aload 0 /* this */
            aload 1 /* object */
            invokespecial javax.management.monitor.Monitor.getDerivedGaugeTimeStamp:(Ljavax/management/ObjectName;)J
            lreturn
        end local 1 // javax.management.ObjectName object
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljavax/management/monitor/GaugeMonitor;
            0    1     1  object  Ljavax/management/ObjectName;
    MethodParameters:
        Name  Flags
      object  

  public synchronized java.lang.Number getDerivedGauge();
    descriptor: ()Ljava/lang/Number;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.management.monitor.GaugeMonitor this
         0: .line 292
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.observedObjects:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
         1: .line 293
            aconst_null
            areturn
         2: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.observedObjects:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.management.monitor.Monitor$ObservedObject
            invokevirtual javax.management.monitor.Monitor$ObservedObject.getDerivedGauge:()Ljava/lang/Object;
            checkcast java.lang.Number
            areturn
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/management/monitor/GaugeMonitor;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public synchronized long getDerivedGaugeTimeStamp();
    descriptor: ()J
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.management.monitor.GaugeMonitor this
         0: .line 310
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.observedObjects:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
         1: .line 311
            lconst_0
            lreturn
         2: .line 313
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.observedObjects:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.management.monitor.Monitor$ObservedObject
            invokevirtual javax.management.monitor.Monitor$ObservedObject.getDerivedGaugeTimeStamp:()J
            lreturn
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/management/monitor/GaugeMonitor;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public synchronized java.lang.Number getHighThreshold();
    descriptor: ()Ljava/lang/Number;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.monitor.GaugeMonitor this
         0: .line 325
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.highThreshold:Ljava/lang/Number;
            areturn
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/monitor/GaugeMonitor;

  public synchronized java.lang.Number getLowThreshold();
    descriptor: ()Ljava/lang/Number;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.monitor.GaugeMonitor this
         0: .line 336
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.lowThreshold:Ljava/lang/Number;
            areturn
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/monitor/GaugeMonitor;

  public synchronized void setThresholds(java.lang.Number, java.lang.Number);
    descriptor: (Ljava/lang/Number;Ljava/lang/Number;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // java.lang.Number highValue
        start local 2 // java.lang.Number lowValue
         0: .line 357
            aload 1 /* highValue */
            ifnull 1
            aload 2 /* lowValue */
            ifnonnull 2
         1: .line 358
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Null threshold value"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 361
      StackMap locals:
      StackMap stack:
            aload 1 /* highValue */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* lowValue */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 4
         3: .line 362
            new java.lang.IllegalArgumentException
            dup
            ldc "Different type threshold values"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 366
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* lowValue */
            aload 1 /* highValue */
         5: .line 367
            aload 1 /* highValue */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         6: .line 366
            invokevirtual javax.management.monitor.GaugeMonitor.isFirstStrictlyGreaterThanLast:(Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/String;)Z
         7: .line 367
            ifeq 9
         8: .line 368
            new java.lang.IllegalArgumentException
            dup
            ldc "High threshold less than low threshold"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.highThreshold:Ljava/lang/Number;
            aload 1 /* highValue */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 11
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.lowThreshold:Ljava/lang/Number;
            aload 2 /* lowValue */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 373
            return
        11: .line 374
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* highValue */
            putfield javax.management.monitor.GaugeMonitor.highThreshold:Ljava/lang/Number;
        12: .line 375
            aload 0 /* this */
            aload 2 /* lowValue */
            putfield javax.management.monitor.GaugeMonitor.lowThreshold:Ljava/lang/Number;
        13: .line 379
            iconst_0
            istore 3 /* index */
        start local 3 // int index
        14: .line 380
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.observedObjects:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 20
      StackMap locals: javax.management.monitor.GaugeMonitor java.lang.Number java.lang.Number int top java.util.Iterator
      StackMap stack:
        15: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.monitor.Monitor$ObservedObject
            astore 4 /* o */
        start local 4 // javax.management.monitor.Monitor$ObservedObject o
        16: .line 381
            aload 0 /* this */
            aload 4 /* o */
            iload 3 /* index */
            iinc 3 /* index */ 1
            bipush 16
            invokevirtual javax.management.monitor.GaugeMonitor.resetAlreadyNotified:(Ljavax/management/monitor/Monitor$ObservedObject;II)V
        17: .line 383
            aload 4 /* o */
            checkcast javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject
        18: .line 382
            astore 6 /* gmo */
        start local 6 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject gmo
        19: .line 384
            aload 6 /* gmo */
            iconst_2
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setStatus:(I)V
        end local 6 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject gmo
        end local 4 // javax.management.monitor.Monitor$ObservedObject o
        20: .line 380
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        21: .line 386
            return
        end local 3 // int index
        end local 2 // java.lang.Number lowValue
        end local 1 // java.lang.Number highValue
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   22     0       this  Ljavax/management/monitor/GaugeMonitor;
            0   22     1  highValue  Ljava/lang/Number;
            0   22     2   lowValue  Ljava/lang/Number;
           14   22     3      index  I
           16   20     4          o  Ljavax/management/monitor/Monitor$ObservedObject;
           19   20     6        gmo  Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
           Name  Flags
      highValue  
      lowValue   

  public synchronized boolean getNotifyHigh();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.monitor.GaugeMonitor this
         0: .line 398
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.notifyHigh:Z
            ireturn
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/monitor/GaugeMonitor;

  public synchronized void setNotifyHigh(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // boolean value
         0: .line 410
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.notifyHigh:Z
            iload 1 /* value */
            if_icmpne 2
         1: .line 411
            return
         2: .line 412
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* value */
            putfield javax.management.monitor.GaugeMonitor.notifyHigh:Z
         3: .line 413
            return
        end local 1 // boolean value
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljavax/management/monitor/GaugeMonitor;
            0    4     1  value  Z
    MethodParameters:
       Name  Flags
      value  

  public synchronized boolean getNotifyLow();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.monitor.GaugeMonitor this
         0: .line 425
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.notifyLow:Z
            ireturn
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/monitor/GaugeMonitor;

  public synchronized void setNotifyLow(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // boolean value
         0: .line 437
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.notifyLow:Z
            iload 1 /* value */
            if_icmpne 2
         1: .line 438
            return
         2: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* value */
            putfield javax.management.monitor.GaugeMonitor.notifyLow:Z
         3: .line 440
            return
        end local 1 // boolean value
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljavax/management/monitor/GaugeMonitor;
            0    4     1  value  Z
    MethodParameters:
       Name  Flags
      value  

  public synchronized boolean getDifferenceMode();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.monitor.GaugeMonitor this
         0: .line 451
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.differenceMode:Z
            ireturn
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/monitor/GaugeMonitor;

  public synchronized void setDifferenceMode(boolean);
    descriptor: (Z)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // boolean value
         0: .line 462
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.differenceMode:Z
            iload 1 /* value */
            if_icmpne 2
         1: .line 463
            return
         2: .line 464
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* value */
            putfield javax.management.monitor.GaugeMonitor.differenceMode:Z
         3: .line 468
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.observedObjects:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 9
      StackMap locals: javax.management.monitor.GaugeMonitor int top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.monitor.Monitor$ObservedObject
            astore 2 /* o */
        start local 2 // javax.management.monitor.Monitor$ObservedObject o
         5: .line 470
            aload 2 /* o */
            checkcast javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject
         6: .line 469
            astore 4 /* gmo */
        start local 4 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject gmo
         7: .line 471
            aload 4 /* gmo */
            iconst_2
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setStatus:(I)V
         8: .line 472
            aload 4 /* gmo */
            aconst_null
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setPreviousScanGauge:(Ljava/lang/Number;)V
        end local 4 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject gmo
        end local 2 // javax.management.monitor.Monitor$ObservedObject o
         9: .line 468
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        10: .line 474
            return
        end local 1 // boolean value
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Ljavax/management/monitor/GaugeMonitor;
            0   11     1  value  Z
            5    9     2      o  Ljavax/management/monitor/Monitor$ObservedObject;
            7    9     4    gmo  Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;
    MethodParameters:
       Name  Flags
      value  

  public javax.management.MBeanNotificationInfo[] getNotificationInfo();
    descriptor: ()[Ljavax/management/MBeanNotificationInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.monitor.GaugeMonitor this
         0: .line 483
            getstatic javax.management.monitor.GaugeMonitor.notifsInfo:[Ljavax/management/MBeanNotificationInfo;
            invokevirtual javax.management.MBeanNotificationInfo[].clone:()Ljava/lang/Object;
            checkcast javax.management.MBeanNotificationInfo[]
            areturn
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/monitor/GaugeMonitor;

  private synchronized boolean updateDerivedGauge(java.lang.Object, javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject);
    descriptor: (Ljava/lang/Object;Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;)Z
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // java.lang.Object scanGauge
        start local 2 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
         0: .line 510
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.differenceMode:Z
            ifeq 8
         1: .line 514
            aload 2 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getPreviousScanGauge:()Ljava/lang/Number;
            ifnull 5
         2: .line 515
            aload 0 /* this */
            aload 1 /* scanGauge */
            checkcast java.lang.Number
            aload 2 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor.setDerivedGaugeWithDifference:(Ljava/lang/Number;Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;)V
         3: .line 516
            iconst_1
            istore 3 /* is_derived_gauge_valid */
        start local 3 // boolean is_derived_gauge_valid
         4: .line 517
            goto 6
        end local 3 // boolean is_derived_gauge_valid
         5: .line 522
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* is_derived_gauge_valid */
        start local 3 // boolean is_derived_gauge_valid
         6: .line 524
      StackMap locals: int
      StackMap stack:
            aload 2 /* o */
            aload 1 /* scanGauge */
            checkcast java.lang.Number
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setPreviousScanGauge:(Ljava/lang/Number;)V
         7: .line 525
            goto 10
        end local 3 // boolean is_derived_gauge_valid
         8: .line 529
      StackMap locals:
      StackMap stack:
            aload 2 /* o */
            aload 1 /* scanGauge */
            checkcast java.lang.Number
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setDerivedGauge:(Ljava/lang/Object;)V
         9: .line 530
            iconst_1
            istore 3 /* is_derived_gauge_valid */
        start local 3 // boolean is_derived_gauge_valid
        10: .line 533
      StackMap locals: int
      StackMap stack:
            iload 3 /* is_derived_gauge_valid */
            ireturn
        end local 3 // boolean is_derived_gauge_valid
        end local 2 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
        end local 1 // java.lang.Object scanGauge
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   11     0                    this  Ljavax/management/monitor/GaugeMonitor;
            0   11     1               scanGauge  Ljava/lang/Object;
            0   11     2                       o  Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;
            4    5     3  is_derived_gauge_valid  Z
            6    8     3  is_derived_gauge_valid  Z
           10   11     3  is_derived_gauge_valid  Z
    MethodParameters:
           Name  Flags
      scanGauge  
      o          

  private synchronized javax.management.monitor.MonitorNotification updateNotifications(javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject);
    descriptor: (Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;)Ljavax/management/monitor/MonitorNotification;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=13, locals=3, args_size=2
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
         0: .line 545
            aconst_null
            astore 2 /* n */
        start local 2 // javax.management.monitor.MonitorNotification n
         1: .line 550
            aload 1 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getStatus:()I
            iconst_2
            if_icmpne 40
         2: .line 551
            aload 0 /* this */
            aload 1 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getDerivedGauge:()Ljava/lang/Object;
            checkcast java.lang.Number
         3: .line 552
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.highThreshold:Ljava/lang/Number;
         4: .line 553
            aload 1 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getType:()Ljavax/management/monitor/Monitor$NumericalType;
         5: .line 551
            invokevirtual javax.management.monitor.GaugeMonitor.isFirstGreaterThanLast:(Ljava/lang/Number;Ljava/lang/Number;Ljavax/management/monitor/Monitor$NumericalType;)Z
         6: .line 553
            ifeq 21
         7: .line 554
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.notifyHigh:Z
            ifeq 19
         8: .line 555
            new javax.management.monitor.MonitorNotification
            dup
         9: .line 556
            ldc "jmx.monitor.gauge.high"
        10: .line 557
            aload 0 /* this */
        11: .line 558
            lconst_0
        12: .line 559
            lconst_0
        13: .line 560
            ldc ""
        14: .line 561
            aconst_null
        15: .line 562
            aconst_null
        16: .line 563
            aconst_null
        17: .line 564
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.highThreshold:Ljava/lang/Number;
        18: .line 555
            invokespecial javax.management.monitor.MonitorNotification.<init>:(Ljava/lang/String;Ljava/lang/Object;JJLjava/lang/String;Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
            astore 2 /* n */
        19: .line 566
      StackMap locals: javax.management.monitor.MonitorNotification
      StackMap stack:
            aload 1 /* o */
            iconst_1
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setStatus:(I)V
        20: .line 567
            goto 79
      StackMap locals:
      StackMap stack:
        21: aload 0 /* this */
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.lowThreshold:Ljava/lang/Number;
        22: .line 568
            aload 1 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getDerivedGauge:()Ljava/lang/Object;
            checkcast java.lang.Number
        23: .line 569
            aload 1 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getType:()Ljavax/management/monitor/Monitor$NumericalType;
        24: .line 567
            invokevirtual javax.management.monitor.GaugeMonitor.isFirstGreaterThanLast:(Ljava/lang/Number;Ljava/lang/Number;Ljavax/management/monitor/Monitor$NumericalType;)Z
        25: .line 569
            ifeq 79
        26: .line 570
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.notifyLow:Z
            ifeq 38
        27: .line 571
            new javax.management.monitor.MonitorNotification
            dup
        28: .line 572
            ldc "jmx.monitor.gauge.low"
        29: .line 573
            aload 0 /* this */
        30: .line 574
            lconst_0
        31: .line 575
            lconst_0
        32: .line 576
            ldc ""
        33: .line 577
            aconst_null
        34: .line 578
            aconst_null
        35: .line 579
            aconst_null
        36: .line 580
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.lowThreshold:Ljava/lang/Number;
        37: .line 571
            invokespecial javax.management.monitor.MonitorNotification.<init>:(Ljava/lang/String;Ljava/lang/Object;JJLjava/lang/String;Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
            astore 2 /* n */
        38: .line 582
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            iconst_0
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setStatus:(I)V
        39: .line 584
            goto 79
        40: .line 585
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getStatus:()I
            ifne 60
        41: .line 586
            aload 0 /* this */
            aload 1 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getDerivedGauge:()Ljava/lang/Object;
            checkcast java.lang.Number
        42: .line 587
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.highThreshold:Ljava/lang/Number;
        43: .line 588
            aload 1 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getType:()Ljavax/management/monitor/Monitor$NumericalType;
        44: .line 586
            invokevirtual javax.management.monitor.GaugeMonitor.isFirstGreaterThanLast:(Ljava/lang/Number;Ljava/lang/Number;Ljavax/management/monitor/Monitor$NumericalType;)Z
        45: .line 588
            ifeq 79
        46: .line 589
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.notifyHigh:Z
            ifeq 58
        47: .line 590
            new javax.management.monitor.MonitorNotification
            dup
        48: .line 591
            ldc "jmx.monitor.gauge.high"
        49: .line 592
            aload 0 /* this */
        50: .line 593
            lconst_0
        51: .line 594
            lconst_0
        52: .line 595
            ldc ""
        53: .line 596
            aconst_null
        54: .line 597
            aconst_null
        55: .line 598
            aconst_null
        56: .line 599
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.highThreshold:Ljava/lang/Number;
        57: .line 590
            invokespecial javax.management.monitor.MonitorNotification.<init>:(Ljava/lang/String;Ljava/lang/Object;JJLjava/lang/String;Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
            astore 2 /* n */
        58: .line 601
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            iconst_1
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setStatus:(I)V
        59: .line 603
            goto 79
      StackMap locals:
      StackMap stack:
        60: aload 1 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getStatus:()I
            iconst_1
            if_icmpne 79
        61: .line 604
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.lowThreshold:Ljava/lang/Number;
        62: .line 605
            aload 1 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getDerivedGauge:()Ljava/lang/Object;
            checkcast java.lang.Number
        63: .line 606
            aload 1 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getType:()Ljavax/management/monitor/Monitor$NumericalType;
        64: .line 604
            invokevirtual javax.management.monitor.GaugeMonitor.isFirstGreaterThanLast:(Ljava/lang/Number;Ljava/lang/Number;Ljavax/management/monitor/Monitor$NumericalType;)Z
        65: .line 606
            ifeq 79
        66: .line 607
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.notifyLow:Z
            ifeq 78
        67: .line 608
            new javax.management.monitor.MonitorNotification
            dup
        68: .line 609
            ldc "jmx.monitor.gauge.low"
        69: .line 610
            aload 0 /* this */
        70: .line 611
            lconst_0
        71: .line 612
            lconst_0
        72: .line 613
            ldc ""
        73: .line 614
            aconst_null
        74: .line 615
            aconst_null
        75: .line 616
            aconst_null
        76: .line 617
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.lowThreshold:Ljava/lang/Number;
        77: .line 608
            invokespecial javax.management.monitor.MonitorNotification.<init>:(Ljava/lang/String;Ljava/lang/Object;JJLjava/lang/String;Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
            astore 2 /* n */
        78: .line 619
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            iconst_0
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setStatus:(I)V
        79: .line 624
      StackMap locals:
      StackMap stack:
            aload 2 /* n */
            areturn
        end local 2 // javax.management.monitor.MonitorNotification n
        end local 1 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   80     0  this  Ljavax/management/monitor/GaugeMonitor;
            0   80     1     o  Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;
            1   80     2     n  Ljavax/management/monitor/MonitorNotification;
    MethodParameters:
      Name  Flags
      o     

  private synchronized void setDerivedGaugeWithDifference(java.lang.Number, javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject);
    descriptor: (Ljava/lang/Number;Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // java.lang.Number scanGauge
        start local 2 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
         0: .line 637
            aload 2 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getPreviousScanGauge:()Ljava/lang/Number;
            astore 3 /* prev */
        start local 3 // java.lang.Number prev
         1: .line 639
            invokestatic javax.management.monitor.GaugeMonitor.$SWITCH_TABLE$javax$management$monitor$Monitor$NumericalType:()[I
            aload 2 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getType:()Ljavax/management/monitor/Monitor$NumericalType;
            invokevirtual javax.management.monitor.Monitor$NumericalType.ordinal:()I
            iaload
            tableswitch { // 1 - 6
                    1: 6
                    2: 10
                    3: 2
                    4: 14
                    5: 18
                    6: 22
              default: 26
          }
         2: .line 641
      StackMap locals: java.lang.Number
      StackMap stack:
            aload 1 /* scanGauge */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
         3: .line 642
            aload 3 /* prev */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
         4: .line 641
            isub
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 4 /* der */
        start local 4 // java.lang.Number der
         5: .line 643
            goto 30
        end local 4 // java.lang.Number der
         6: .line 645
      StackMap locals:
      StackMap stack:
            aload 1 /* scanGauge */
            checkcast java.lang.Byte
            invokevirtual java.lang.Byte.byteValue:()B
         7: .line 646
            aload 3 /* prev */
            checkcast java.lang.Byte
            invokevirtual java.lang.Byte.byteValue:()B
         8: .line 645
            isub
            i2b
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            astore 4 /* der */
        start local 4 // java.lang.Number der
         9: .line 647
            goto 30
        end local 4 // java.lang.Number der
        10: .line 649
      StackMap locals:
      StackMap stack:
            aload 1 /* scanGauge */
            checkcast java.lang.Short
            invokevirtual java.lang.Short.shortValue:()S
        11: .line 650
            aload 3 /* prev */
            checkcast java.lang.Short
            invokevirtual java.lang.Short.shortValue:()S
        12: .line 649
            isub
            i2s
            invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
            astore 4 /* der */
        start local 4 // java.lang.Number der
        13: .line 651
            goto 30
        end local 4 // java.lang.Number der
        14: .line 653
      StackMap locals:
      StackMap stack:
            aload 1 /* scanGauge */
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
        15: .line 654
            aload 3 /* prev */
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
        16: .line 653
            lsub
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 4 /* der */
        start local 4 // java.lang.Number der
        17: .line 655
            goto 30
        end local 4 // java.lang.Number der
        18: .line 657
      StackMap locals:
      StackMap stack:
            aload 1 /* scanGauge */
            checkcast java.lang.Float
            invokevirtual java.lang.Float.floatValue:()F
        19: .line 658
            aload 3 /* prev */
            checkcast java.lang.Float
            invokevirtual java.lang.Float.floatValue:()F
        20: .line 657
            fsub
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            astore 4 /* der */
        start local 4 // java.lang.Number der
        21: .line 659
            goto 30
        end local 4 // java.lang.Number der
        22: .line 661
      StackMap locals:
      StackMap stack:
            aload 1 /* scanGauge */
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
        23: .line 662
            aload 3 /* prev */
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
        24: .line 661
            dsub
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            astore 4 /* der */
        start local 4 // java.lang.Number der
        25: .line 663
            goto 30
        end local 4 // java.lang.Number der
        26: .line 666
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.MONITOR_LOGGER:Ljava/lang/System$Logger;
            getstatic java.lang.System$Logger$Level.TRACE:Ljava/lang/System$Logger$Level;
        27: .line 667
            ldc "the threshold type is invalid"
        28: .line 666
            invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
        29: .line 668
            return
        start local 4 // java.lang.Number der
        30: .line 670
      StackMap locals: java.lang.Number
      StackMap stack:
            aload 2 /* o */
            aload 4 /* der */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setDerivedGauge:(Ljava/lang/Object;)V
        31: .line 671
            return
        end local 4 // java.lang.Number der
        end local 3 // java.lang.Number prev
        end local 2 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
        end local 1 // java.lang.Number scanGauge
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   32     0       this  Ljavax/management/monitor/GaugeMonitor;
            0   32     1  scanGauge  Ljava/lang/Number;
            0   32     2          o  Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;
            1   32     3       prev  Ljava/lang/Number;
            5    6     4        der  Ljava/lang/Number;
            9   10     4        der  Ljava/lang/Number;
           13   14     4        der  Ljava/lang/Number;
           17   18     4        der  Ljava/lang/Number;
           21   22     4        der  Ljava/lang/Number;
           25   26     4        der  Ljava/lang/Number;
           30   32     4        der  Ljava/lang/Number;
    MethodParameters:
           Name  Flags
      scanGauge  
      o          

  private boolean isFirstGreaterThanLast(java.lang.Number, java.lang.Number, javax.management.monitor.Monitor$NumericalType);
    descriptor: (Ljava/lang/Number;Ljava/lang/Number;Ljavax/management/monitor/Monitor$NumericalType;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // java.lang.Number greater
        start local 2 // java.lang.Number less
        start local 3 // javax.management.monitor.Monitor$NumericalType type
         0: .line 688
            invokestatic javax.management.monitor.GaugeMonitor.$SWITCH_TABLE$javax$management$monitor$Monitor$NumericalType:()[I
            aload 3 /* type */
            invokevirtual javax.management.monitor.Monitor$NumericalType.ordinal:()I
            iaload
            tableswitch { // 1 - 6
                    1: 1
                    2: 1
                    3: 1
                    4: 1
                    5: 3
                    6: 3
              default: 5
          }
         1: .line 693
      StackMap locals:
      StackMap stack:
            aload 1 /* greater */
            invokevirtual java.lang.Number.longValue:()J
            aload 2 /* less */
            invokevirtual java.lang.Number.longValue:()J
            lcmp
            iflt 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 696
      StackMap locals:
      StackMap stack:
            aload 1 /* greater */
            invokevirtual java.lang.Number.doubleValue:()D
            aload 2 /* less */
            invokevirtual java.lang.Number.doubleValue:()D
            dcmpl
            iflt 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
         5: .line 699
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.MONITOR_LOGGER:Ljava/lang/System$Logger;
            getstatic java.lang.System$Logger$Level.TRACE:Ljava/lang/System$Logger$Level;
         6: .line 700
            ldc "the threshold type is invalid"
         7: .line 699
            invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
         8: .line 701
            iconst_0
            ireturn
        end local 3 // javax.management.monitor.Monitor$NumericalType type
        end local 2 // java.lang.Number less
        end local 1 // java.lang.Number greater
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Ljavax/management/monitor/GaugeMonitor;
            0    9     1  greater  Ljava/lang/Number;
            0    9     2     less  Ljava/lang/Number;
            0    9     3     type  Ljavax/management/monitor/Monitor$NumericalType;
    MethodParameters:
         Name  Flags
      greater  
      less     
      type     

  private boolean isFirstStrictlyGreaterThanLast(java.lang.Number, java.lang.Number, java.lang.String);
    descriptor: (Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // java.lang.Number greater
        start local 2 // java.lang.Number less
        start local 3 // java.lang.String className
         0: .line 719
            aload 3 /* className */
            ldc "java.lang.Integer"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         1: .line 720
            aload 3 /* className */
            ldc "java.lang.Byte"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         2: .line 721
            aload 3 /* className */
            ldc "java.lang.Short"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 722
            aload 3 /* className */
            ldc "java.lang.Long"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 724
      StackMap locals:
      StackMap stack:
            aload 1 /* greater */
            invokevirtual java.lang.Number.longValue:()J
            aload 2 /* less */
            invokevirtual java.lang.Number.longValue:()J
            lcmp
            ifle 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
         6: .line 726
      StackMap locals:
      StackMap stack:
            aload 3 /* className */
            ldc "java.lang.Float"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
         7: .line 727
            aload 3 /* className */
            ldc "java.lang.Double"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 729
      StackMap locals:
      StackMap stack:
            aload 1 /* greater */
            invokevirtual java.lang.Number.doubleValue:()D
            aload 2 /* less */
            invokevirtual java.lang.Number.doubleValue:()D
            dcmpl
            ifle 9
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         9: iconst_0
            ireturn
        10: .line 733
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.MONITOR_LOGGER:Ljava/lang/System$Logger;
            getstatic java.lang.System$Logger$Level.TRACE:Ljava/lang/System$Logger$Level;
        11: .line 734
            ldc "the threshold type is invalid"
        12: .line 733
            invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
        13: .line 735
            iconst_0
            ireturn
        end local 3 // java.lang.String className
        end local 2 // java.lang.Number less
        end local 1 // java.lang.Number greater
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Ljavax/management/monitor/GaugeMonitor;
            0   14     1    greater  Ljava/lang/Number;
            0   14     2       less  Ljava/lang/Number;
            0   14     3  className  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      greater    
      less       
      className  

  javax.management.monitor.Monitor$ObservedObject createObservedObject(javax.management.ObjectName);
    descriptor: (Ljavax/management/ObjectName;)Ljavax/management/monitor/Monitor$ObservedObject;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // javax.management.ObjectName object
         0: .line 753
            new javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject
            dup
            aload 1 /* object */
            invokespecial javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.<init>:(Ljavax/management/ObjectName;)V
         1: .line 752
            astore 2 /* gmo */
        start local 2 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject gmo
         2: .line 754
            aload 2 /* gmo */
            iconst_2
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setStatus:(I)V
         3: .line 755
            aload 2 /* gmo */
            aconst_null
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setPreviousScanGauge:(Ljava/lang/Number;)V
         4: .line 756
            aload 2 /* gmo */
            areturn
        end local 2 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject gmo
        end local 1 // javax.management.ObjectName object
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Ljavax/management/monitor/GaugeMonitor;
            0    5     1  object  Ljavax/management/ObjectName;
            2    5     2     gmo  Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;
    MethodParameters:
        Name  Flags
      object  

  synchronized boolean isComparableTypeValid(javax.management.ObjectName, java.lang.String, java.lang.Comparable<?>);
    descriptor: (Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/Comparable;)Z
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // javax.management.ObjectName object
        start local 2 // java.lang.String attribute
        start local 3 // java.lang.Comparable value
         0: .line 770
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual javax.management.monitor.GaugeMonitor.getObservedObject:(Ljavax/management/ObjectName;)Ljavax/management/monitor/Monitor$ObservedObject;
            checkcast javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject
         1: .line 769
            astore 4 /* o */
        start local 4 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
         2: .line 771
            aload 4 /* o */
            ifnonnull 4
         3: .line 772
            iconst_0
            ireturn
         4: .line 777
      StackMap locals: javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject
      StackMap stack:
            aload 3 /* value */
            instanceof java.lang.Integer
            ifeq 7
         5: .line 778
            aload 4 /* o */
            getstatic javax.management.monitor.Monitor$NumericalType.INTEGER:Ljavax/management/monitor/Monitor$NumericalType;
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setType:(Ljavax/management/monitor/Monitor$NumericalType;)V
         6: .line 779
            goto 23
      StackMap locals:
      StackMap stack:
         7: aload 3 /* value */
            instanceof java.lang.Byte
            ifeq 10
         8: .line 780
            aload 4 /* o */
            getstatic javax.management.monitor.Monitor$NumericalType.BYTE:Ljavax/management/monitor/Monitor$NumericalType;
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setType:(Ljavax/management/monitor/Monitor$NumericalType;)V
         9: .line 781
            goto 23
      StackMap locals:
      StackMap stack:
        10: aload 3 /* value */
            instanceof java.lang.Short
            ifeq 13
        11: .line 782
            aload 4 /* o */
            getstatic javax.management.monitor.Monitor$NumericalType.SHORT:Ljavax/management/monitor/Monitor$NumericalType;
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setType:(Ljavax/management/monitor/Monitor$NumericalType;)V
        12: .line 783
            goto 23
      StackMap locals:
      StackMap stack:
        13: aload 3 /* value */
            instanceof java.lang.Long
            ifeq 16
        14: .line 784
            aload 4 /* o */
            getstatic javax.management.monitor.Monitor$NumericalType.LONG:Ljavax/management/monitor/Monitor$NumericalType;
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setType:(Ljavax/management/monitor/Monitor$NumericalType;)V
        15: .line 785
            goto 23
      StackMap locals:
      StackMap stack:
        16: aload 3 /* value */
            instanceof java.lang.Float
            ifeq 19
        17: .line 786
            aload 4 /* o */
            getstatic javax.management.monitor.Monitor$NumericalType.FLOAT:Ljavax/management/monitor/Monitor$NumericalType;
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setType:(Ljavax/management/monitor/Monitor$NumericalType;)V
        18: .line 787
            goto 23
      StackMap locals:
      StackMap stack:
        19: aload 3 /* value */
            instanceof java.lang.Double
            ifeq 22
        20: .line 788
            aload 4 /* o */
            getstatic javax.management.monitor.Monitor$NumericalType.DOUBLE:Ljavax/management/monitor/Monitor$NumericalType;
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setType:(Ljavax/management/monitor/Monitor$NumericalType;)V
        21: .line 789
            goto 23
        22: .line 790
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        23: .line 792
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
        end local 3 // java.lang.Comparable value
        end local 2 // java.lang.String attribute
        end local 1 // javax.management.ObjectName object
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0       this  Ljavax/management/monitor/GaugeMonitor;
            0   24     1     object  Ljavax/management/ObjectName;
            0   24     2  attribute  Ljava/lang/String;
            0   24     3      value  Ljava/lang/Comparable<*>;
            2   24     4          o  Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;
    Signature: (Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/Comparable<*>;)Z
    MethodParameters:
           Name  Flags
      object     
      attribute  
      value      

  synchronized java.lang.Comparable<?> getDerivedGaugeFromComparable(javax.management.ObjectName, java.lang.String, java.lang.Comparable<?>);
    descriptor: (Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/Comparable;)Ljava/lang/Comparable;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // javax.management.ObjectName object
        start local 2 // java.lang.String attribute
        start local 3 // java.lang.Comparable value
         0: .line 801
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual javax.management.monitor.GaugeMonitor.getObservedObject:(Ljavax/management/ObjectName;)Ljavax/management/monitor/Monitor$ObservedObject;
            checkcast javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject
         1: .line 800
            astore 4 /* o */
        start local 4 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
         2: .line 802
            aload 4 /* o */
            ifnonnull 4
         3: .line 803
            aconst_null
            areturn
         4: .line 812
      StackMap locals: javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject
      StackMap stack:
            aload 4 /* o */
            aload 0 /* this */
            aload 3 /* value */
            aload 4 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor.updateDerivedGauge:(Ljava/lang/Object;Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;)Z
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setDerivedGaugeValid:(Z)V
         5: .line 814
            aload 4 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getDerivedGauge:()Ljava/lang/Object;
            checkcast java.lang.Comparable
            areturn
        end local 4 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
        end local 3 // java.lang.Comparable value
        end local 2 // java.lang.String attribute
        end local 1 // javax.management.ObjectName object
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Ljavax/management/monitor/GaugeMonitor;
            0    6     1     object  Ljavax/management/ObjectName;
            0    6     2  attribute  Ljava/lang/String;
            0    6     3      value  Ljava/lang/Comparable<*>;
            2    6     4          o  Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;
    Signature: (Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/Comparable<*>;)Ljava/lang/Comparable<*>;
    MethodParameters:
           Name  Flags
      object     
      attribute  
      value      

  synchronized void onErrorNotification(javax.management.monitor.MonitorNotification);
    descriptor: (Ljavax/management/monitor/MonitorNotification;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // javax.management.monitor.MonitorNotification notification
         0: .line 820
            aload 0 /* this */
            aload 1 /* notification */
            invokevirtual javax.management.monitor.MonitorNotification.getObservedObject:()Ljavax/management/ObjectName;
            invokevirtual javax.management.monitor.GaugeMonitor.getObservedObject:(Ljavax/management/ObjectName;)Ljavax/management/monitor/Monitor$ObservedObject;
         1: .line 819
            checkcast javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject
            astore 2 /* o */
        start local 2 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
         2: .line 821
            aload 2 /* o */
            ifnonnull 4
         3: .line 822
            return
         4: .line 826
      StackMap locals: javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject
      StackMap stack:
            aload 2 /* o */
            iconst_2
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setStatus:(I)V
         5: .line 827
            aload 2 /* o */
            aconst_null
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.setPreviousScanGauge:(Ljava/lang/Number;)V
         6: .line 828
            return
        end local 2 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
        end local 1 // javax.management.monitor.MonitorNotification notification
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Ljavax/management/monitor/GaugeMonitor;
            0    7     1  notification  Ljavax/management/monitor/MonitorNotification;
            2    7     2             o  Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;
    MethodParameters:
              Name  Flags
      notification  

  synchronized javax.management.monitor.MonitorNotification buildAlarmNotification(javax.management.ObjectName, java.lang.String, java.lang.Comparable<?>);
    descriptor: (Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/Comparable;)Ljavax/management/monitor/MonitorNotification;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // javax.management.ObjectName object
        start local 2 // java.lang.String attribute
        start local 3 // java.lang.Comparable value
         0: .line 836
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual javax.management.monitor.GaugeMonitor.getObservedObject:(Ljavax/management/ObjectName;)Ljavax/management/monitor/Monitor$ObservedObject;
            checkcast javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject
         1: .line 835
            astore 4 /* o */
        start local 4 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
         2: .line 837
            aload 4 /* o */
            ifnonnull 4
         3: .line 838
            aconst_null
            areturn
         4: .line 844
      StackMap locals: javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject
      StackMap stack:
            aload 4 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getDerivedGaugeValid:()Z
            ifeq 7
         5: .line 845
            aload 0 /* this */
            aload 4 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor.updateNotifications:(Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;)Ljavax/management/monitor/MonitorNotification;
            astore 5 /* alarm */
        start local 5 // javax.management.monitor.MonitorNotification alarm
         6: goto 8
        end local 5 // javax.management.monitor.MonitorNotification alarm
         7: .line 847
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* alarm */
        start local 5 // javax.management.monitor.MonitorNotification alarm
         8: .line 848
      StackMap locals: javax.management.monitor.MonitorNotification
      StackMap stack:
            aload 5 /* alarm */
            areturn
        end local 5 // javax.management.monitor.MonitorNotification alarm
        end local 4 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
        end local 3 // java.lang.Comparable value
        end local 2 // java.lang.String attribute
        end local 1 // javax.management.ObjectName object
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Ljavax/management/monitor/GaugeMonitor;
            0    9     1     object  Ljavax/management/ObjectName;
            0    9     2  attribute  Ljava/lang/String;
            0    9     3      value  Ljava/lang/Comparable<*>;
            2    9     4          o  Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;
            6    7     5      alarm  Ljavax/management/monitor/MonitorNotification;
            8    9     5      alarm  Ljavax/management/monitor/MonitorNotification;
    Signature: (Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/Comparable<*>;)Ljavax/management/monitor/MonitorNotification;
    MethodParameters:
           Name  Flags
      object     
      attribute  
      value      

  synchronized boolean isThresholdTypeValid(javax.management.ObjectName, java.lang.String, java.lang.Comparable<?>);
    descriptor: (Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/Comparable;)Z
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // javax.management.monitor.GaugeMonitor this
        start local 1 // javax.management.ObjectName object
        start local 2 // java.lang.String attribute
        start local 3 // java.lang.Comparable value
         0: .line 872
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual javax.management.monitor.GaugeMonitor.getObservedObject:(Ljavax/management/ObjectName;)Ljavax/management/monitor/Monitor$ObservedObject;
            checkcast javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject
         1: .line 871
            astore 4 /* o */
        start local 4 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
         2: .line 873
            aload 4 /* o */
            ifnonnull 4
         3: .line 874
            iconst_0
            ireturn
         4: .line 876
      StackMap locals: javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject
      StackMap stack:
            aload 4 /* o */
            invokevirtual javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject.getType:()Ljavax/management/monitor/Monitor$NumericalType;
            invokestatic javax.management.monitor.GaugeMonitor.classForType:(Ljavax/management/monitor/Monitor$NumericalType;)Ljava/lang/Class;
            astore 5 /* c */
        start local 5 // java.lang.Class c
         5: .line 877
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.highThreshold:Ljava/lang/Number;
            aload 5 /* c */
            invokestatic javax.management.monitor.GaugeMonitor.isValidForType:(Ljava/lang/Object;Ljava/lang/Class;)Z
            ifeq 8
         6: .line 878
            aload 0 /* this */
            getfield javax.management.monitor.GaugeMonitor.lowThreshold:Ljava/lang/Number;
            aload 5 /* c */
            invokestatic javax.management.monitor.GaugeMonitor.isValidForType:(Ljava/lang/Object;Ljava/lang/Class;)Z
            ifeq 8
         7: .line 877
            iconst_1
            ireturn
      StackMap locals: java.lang.Class
      StackMap stack:
         8: iconst_0
            ireturn
        end local 5 // java.lang.Class c
        end local 4 // javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject o
        end local 3 // java.lang.Comparable value
        end local 2 // java.lang.String attribute
        end local 1 // javax.management.ObjectName object
        end local 0 // javax.management.monitor.GaugeMonitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Ljavax/management/monitor/GaugeMonitor;
            0    9     1     object  Ljavax/management/ObjectName;
            0    9     2  attribute  Ljava/lang/String;
            0    9     3      value  Ljava/lang/Comparable<*>;
            2    9     4          o  Ljavax/management/monitor/GaugeMonitor$GaugeMonitorObservedObject;
            5    9     5          c  Ljava/lang/Class<+Ljava/lang/Number;>;
    Signature: (Ljavax/management/ObjectName;Ljava/lang/String;Ljava/lang/Comparable<*>;)Z
    MethodParameters:
           Name  Flags
      object     
      attribute  
      value      

  public java.lang.Object getDerivedGauge(javax.management.ObjectName);
    descriptor: (Ljavax/management/ObjectName;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual javax.management.monitor.GaugeMonitor.getDerivedGauge:(Ljavax/management/ObjectName;)Ljava/lang/Number;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$javax$management$monitor$Monitor$NumericalType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 87
            getstatic javax.management.monitor.GaugeMonitor.$SWITCH_TABLE$javax$management$monitor$Monitor$NumericalType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic javax.management.monitor.Monitor$NumericalType.values:()[Ljavax/management/monitor/Monitor$NumericalType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic javax.management.monitor.Monitor$NumericalType.BYTE:Ljavax/management/monitor/Monitor$NumericalType;
            invokevirtual javax.management.monitor.Monitor$NumericalType.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic javax.management.monitor.Monitor$NumericalType.DOUBLE:Ljavax/management/monitor/Monitor$NumericalType;
            invokevirtual javax.management.monitor.Monitor$NumericalType.ordinal:()I
            bipush 6
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic javax.management.monitor.Monitor$NumericalType.FLOAT:Ljavax/management/monitor/Monitor$NumericalType;
            invokevirtual javax.management.monitor.Monitor$NumericalType.ordinal:()I
            iconst_5
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic javax.management.monitor.Monitor$NumericalType.INTEGER:Ljavax/management/monitor/Monitor$NumericalType;
            invokevirtual javax.management.monitor.Monitor$NumericalType.ordinal:()I
            iconst_3
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic javax.management.monitor.Monitor$NumericalType.LONG:Ljavax/management/monitor/Monitor$NumericalType;
            invokevirtual javax.management.monitor.Monitor$NumericalType.ordinal:()I
            iconst_4
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic javax.management.monitor.Monitor$NumericalType.SHORT:Ljavax/management/monitor/Monitor$NumericalType;
            invokevirtual javax.management.monitor.Monitor$NumericalType.ordinal:()I
            iconst_2
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            dup
            putstatic javax.management.monitor.GaugeMonitor.$SWITCH_TABLE$javax$management$monitor$Monitor$NumericalType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
}
SourceFile: "GaugeMonitor.java"
NestMembers:
  javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject
InnerClasses:
  public abstract Logger = java.lang.System$Logger of java.lang.System
  public final Level = java.lang.System$Logger$Level of java.lang.System$Logger
  GaugeMonitorObservedObject = javax.management.monitor.GaugeMonitor$GaugeMonitorObservedObject of javax.management.monitor.GaugeMonitor
  final NumericalType = javax.management.monitor.Monitor$NumericalType of javax.management.monitor.Monitor
  ObservedObject = javax.management.monitor.Monitor$ObservedObject of javax.management.monitor.Monitor