class com.codahale.metrics.json.MetricsModule$TimerSerializer extends com.fasterxml.jackson.databind.ser.std.StdSerializer<com.codahale.metrics.Timer>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.codahale.metrics.json.MetricsModule$TimerSerializer
  super_class: com.fasterxml.jackson.databind.ser.std.StdSerializer
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private final java.lang.String rateUnit;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final double rateFactor;
    descriptor: D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String durationUnit;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final double durationFactor;
    descriptor: D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean showSamples;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private void <init>(java.util.concurrent.TimeUnit, java.util.concurrent.TimeUnit, boolean);
    descriptor: (Ljava/util/concurrent/TimeUnit;Ljava/util/concurrent/TimeUnit;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.codahale.metrics.json.MetricsModule$TimerSerializer this
        start local 1 // java.util.concurrent.TimeUnit rateUnit
        start local 2 // java.util.concurrent.TimeUnit durationUnit
        start local 3 // boolean showSamples
         0: .line 147
            aload 0 /* this */
            ldc Lcom/codahale/metrics/Timer;
            invokespecial com.fasterxml.jackson.databind.ser.std.StdSerializer.<init>:(Ljava/lang/Class;)V
         1: .line 148
            aload 0 /* this */
            aload 1 /* rateUnit */
            ldc "calls"
            invokestatic com.codahale.metrics.json.MetricsModule.calculateRateUnit:(Ljava/util/concurrent/TimeUnit;Ljava/lang/String;)Ljava/lang/String;
            putfield com.codahale.metrics.json.MetricsModule$TimerSerializer.rateUnit:Ljava/lang/String;
         2: .line 149
            aload 0 /* this */
            aload 1 /* rateUnit */
            lconst_1
            invokevirtual java.util.concurrent.TimeUnit.toSeconds:(J)J
            l2d
            putfield com.codahale.metrics.json.MetricsModule$TimerSerializer.rateFactor:D
         3: .line 150
            aload 0 /* this */
            aload 2 /* durationUnit */
            invokevirtual java.util.concurrent.TimeUnit.toString:()Ljava/lang/String;
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            putfield com.codahale.metrics.json.MetricsModule$TimerSerializer.durationUnit:Ljava/lang/String;
         4: .line 151
            aload 0 /* this */
            dconst_1
            aload 2 /* durationUnit */
            lconst_1
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            l2d
            ddiv
            putfield com.codahale.metrics.json.MetricsModule$TimerSerializer.durationFactor:D
         5: .line 152
            aload 0 /* this */
            iload 3 /* showSamples */
            putfield com.codahale.metrics.json.MetricsModule$TimerSerializer.showSamples:Z
         6: .line 153
            return
        end local 3 // boolean showSamples
        end local 2 // java.util.concurrent.TimeUnit durationUnit
        end local 1 // java.util.concurrent.TimeUnit rateUnit
        end local 0 // com.codahale.metrics.json.MetricsModule$TimerSerializer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lcom/codahale/metrics/json/MetricsModule$TimerSerializer;
            0    7     1      rateUnit  Ljava/util/concurrent/TimeUnit;
            0    7     2  durationUnit  Ljava/util/concurrent/TimeUnit;
            0    7     3   showSamples  Z
    MethodParameters:
              Name  Flags
      rateUnit      
      durationUnit  
      showSamples   

  public void serialize(com.codahale.metrics.Timer, com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.databind.SerializerProvider);
    descriptor: (Lcom/codahale/metrics/Timer;Lcom/fasterxml/jackson/core/JsonGenerator;Lcom/fasterxml/jackson/databind/SerializerProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // com.codahale.metrics.json.MetricsModule$TimerSerializer this
        start local 1 // com.codahale.metrics.Timer timer
        start local 2 // com.fasterxml.jackson.core.JsonGenerator json
        start local 3 // com.fasterxml.jackson.databind.SerializerProvider provider
         0: .line 159
            aload 2 /* json */
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeStartObject:()V
         1: .line 160
            aload 1 /* timer */
            invokevirtual com.codahale.metrics.Timer.getSnapshot:()Lcom/codahale/metrics/Snapshot;
            astore 4 /* snapshot */
        start local 4 // com.codahale.metrics.Snapshot snapshot
         2: .line 161
            aload 2 /* json */
            ldc "count"
            aload 1 /* timer */
            invokevirtual com.codahale.metrics.Timer.getCount:()J
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumberField:(Ljava/lang/String;J)V
         3: .line 162
            aload 2 /* json */
            ldc "max"
            aload 4 /* snapshot */
            invokevirtual com.codahale.metrics.Snapshot.getMax:()J
            l2d
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.durationFactor:D
            dmul
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumberField:(Ljava/lang/String;D)V
         4: .line 163
            aload 2 /* json */
            ldc "mean"
            aload 4 /* snapshot */
            invokevirtual com.codahale.metrics.Snapshot.getMean:()D
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.durationFactor:D
            dmul
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumberField:(Ljava/lang/String;D)V
         5: .line 164
            aload 2 /* json */
            ldc "min"
            aload 4 /* snapshot */
            invokevirtual com.codahale.metrics.Snapshot.getMin:()J
            l2d
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.durationFactor:D
            dmul
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumberField:(Ljava/lang/String;D)V
         6: .line 166
            aload 2 /* json */
            ldc "p50"
            aload 4 /* snapshot */
            invokevirtual com.codahale.metrics.Snapshot.getMedian:()D
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.durationFactor:D
            dmul
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumberField:(Ljava/lang/String;D)V
         7: .line 167
            aload 2 /* json */
            ldc "p75"
            aload 4 /* snapshot */
            invokevirtual com.codahale.metrics.Snapshot.get75thPercentile:()D
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.durationFactor:D
            dmul
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumberField:(Ljava/lang/String;D)V
         8: .line 168
            aload 2 /* json */
            ldc "p95"
            aload 4 /* snapshot */
            invokevirtual com.codahale.metrics.Snapshot.get95thPercentile:()D
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.durationFactor:D
            dmul
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumberField:(Ljava/lang/String;D)V
         9: .line 169
            aload 2 /* json */
            ldc "p98"
            aload 4 /* snapshot */
            invokevirtual com.codahale.metrics.Snapshot.get98thPercentile:()D
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.durationFactor:D
            dmul
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumberField:(Ljava/lang/String;D)V
        10: .line 170
            aload 2 /* json */
            ldc "p99"
            aload 4 /* snapshot */
            invokevirtual com.codahale.metrics.Snapshot.get99thPercentile:()D
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.durationFactor:D
            dmul
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumberField:(Ljava/lang/String;D)V
        11: .line 171
            aload 2 /* json */
            ldc "p999"
            aload 4 /* snapshot */
            invokevirtual com.codahale.metrics.Snapshot.get999thPercentile:()D
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.durationFactor:D
            dmul
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumberField:(Ljava/lang/String;D)V
        12: .line 173
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.showSamples:Z
            ifeq 21
        13: .line 174
            aload 4 /* snapshot */
            invokevirtual com.codahale.metrics.Snapshot.getValues:()[J
            astore 5 /* values */
        start local 5 // long[] values
        14: .line 175
            aload 5 /* values */
            arraylength
            newarray 7
            astore 6 /* scaledValues */
        start local 6 // double[] scaledValues
        15: .line 176
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        16: goto 19
        17: .line 177
      StackMap locals: com.codahale.metrics.json.MetricsModule$TimerSerializer com.codahale.metrics.Timer com.fasterxml.jackson.core.JsonGenerator com.fasterxml.jackson.databind.SerializerProvider com.codahale.metrics.Snapshot long[] double[] int
      StackMap stack:
            aload 6 /* scaledValues */
            iload 7 /* i */
            aload 5 /* values */
            iload 7 /* i */
            laload
            l2d
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.durationFactor:D
            dmul
            dastore
        18: .line 176
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 7 /* i */
            aload 5 /* values */
            arraylength
            if_icmplt 17
        end local 7 // int i
        20: .line 179
            aload 2 /* json */
            ldc "values"
            aload 6 /* scaledValues */
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeObjectField:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 6 // double[] scaledValues
        end local 5 // long[] values
        21: .line 182
      StackMap locals:
      StackMap stack:
            aload 2 /* json */
            ldc "stddev"
            aload 4 /* snapshot */
            invokevirtual com.codahale.metrics.Snapshot.getStdDev:()D
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.durationFactor:D
            dmul
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumberField:(Ljava/lang/String;D)V
        22: .line 183
            aload 2 /* json */
            ldc "m15_rate"
            aload 1 /* timer */
            invokevirtual com.codahale.metrics.Timer.getFifteenMinuteRate:()D
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.rateFactor:D
            dmul
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumberField:(Ljava/lang/String;D)V
        23: .line 184
            aload 2 /* json */
            ldc "m1_rate"
            aload 1 /* timer */
            invokevirtual com.codahale.metrics.Timer.getOneMinuteRate:()D
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.rateFactor:D
            dmul
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumberField:(Ljava/lang/String;D)V
        24: .line 185
            aload 2 /* json */
            ldc "m5_rate"
            aload 1 /* timer */
            invokevirtual com.codahale.metrics.Timer.getFiveMinuteRate:()D
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.rateFactor:D
            dmul
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumberField:(Ljava/lang/String;D)V
        25: .line 186
            aload 2 /* json */
            ldc "mean_rate"
            aload 1 /* timer */
            invokevirtual com.codahale.metrics.Timer.getMeanRate:()D
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.rateFactor:D
            dmul
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumberField:(Ljava/lang/String;D)V
        26: .line 187
            aload 2 /* json */
            ldc "duration_units"
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.durationUnit:Ljava/lang/String;
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeStringField:(Ljava/lang/String;Ljava/lang/String;)V
        27: .line 188
            aload 2 /* json */
            ldc "rate_units"
            aload 0 /* this */
            getfield com.codahale.metrics.json.MetricsModule$TimerSerializer.rateUnit:Ljava/lang/String;
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeStringField:(Ljava/lang/String;Ljava/lang/String;)V
        28: .line 189
            aload 2 /* json */
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeEndObject:()V
        29: .line 190
            return
        end local 4 // com.codahale.metrics.Snapshot snapshot
        end local 3 // com.fasterxml.jackson.databind.SerializerProvider provider
        end local 2 // com.fasterxml.jackson.core.JsonGenerator json
        end local 1 // com.codahale.metrics.Timer timer
        end local 0 // com.codahale.metrics.json.MetricsModule$TimerSerializer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   30     0          this  Lcom/codahale/metrics/json/MetricsModule$TimerSerializer;
            0   30     1         timer  Lcom/codahale/metrics/Timer;
            0   30     2          json  Lcom/fasterxml/jackson/core/JsonGenerator;
            0   30     3      provider  Lcom/fasterxml/jackson/databind/SerializerProvider;
            2   30     4      snapshot  Lcom/codahale/metrics/Snapshot;
           14   21     5        values  [J
           15   21     6  scaledValues  [D
           16   20     7             i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      timer     
      json      
      provider  

  public void serialize(java.lang.Object, com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.databind.SerializerProvider);
    descriptor: (Ljava/lang/Object;Lcom/fasterxml/jackson/core/JsonGenerator;Lcom/fasterxml/jackson/databind/SerializerProvider;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            checkcast com.codahale.metrics.Timer
            aload 2
            aload 3
            invokevirtual com.codahale.metrics.json.MetricsModule$TimerSerializer.serialize:(Lcom/codahale/metrics/Timer;Lcom/fasterxml/jackson/core/JsonGenerator;Lcom/fasterxml/jackson/databind/SerializerProvider;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException
}
Signature: Lcom/fasterxml/jackson/databind/ser/std/StdSerializer<Lcom/codahale/metrics/Timer;>;
SourceFile: "MetricsModule.java"
NestHost: com.codahale.metrics.json.MetricsModule
InnerClasses:
  private TimerSerializer = com.codahale.metrics.json.MetricsModule$TimerSerializer of com.codahale.metrics.json.MetricsModule