public class org.terracotta.statistics.ValueStatistics
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.terracotta.statistics.ValueStatistics
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.terracotta.statistics.ValueStatistics this
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.terracotta.statistics.ValueStatistics this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/terracotta/statistics/ValueStatistics;

  public static <T extends java.io.Serializable> org.terracotta.statistics.ConstantValueStatistic<T> nullValue(org.terracotta.statistics.StatisticType);
    descriptor: (Lorg/terracotta/statistics/StatisticType;)Lorg/terracotta/statistics/ConstantValueStatistic;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.terracotta.statistics.StatisticType type
         0: .line 34
            new org.terracotta.statistics.ConstantValueStatistic
            dup
            aload 0 /* type */
            aconst_null
            invokespecial org.terracotta.statistics.ConstantValueStatistic.<init>:(Lorg/terracotta/statistics/StatisticType;Ljava/io/Serializable;)V
            areturn
        end local 0 // org.terracotta.statistics.StatisticType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Lorg/terracotta/statistics/StatisticType;
    Signature: <T::Ljava/io/Serializable;>(Lorg/terracotta/statistics/StatisticType;)Lorg/terracotta/statistics/ConstantValueStatistic<TT;>;
    MethodParameters:
      Name  Flags
      type  

  public static <T extends java.io.Serializable> org.terracotta.statistics.ConstantValueStatistic<T> constant(org.terracotta.statistics.StatisticType, T);
    descriptor: (Lorg/terracotta/statistics/StatisticType;Ljava/io/Serializable;)Lorg/terracotta/statistics/ConstantValueStatistic;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.terracotta.statistics.StatisticType type
        start local 1 // java.io.Serializable value
         0: .line 38
            new org.terracotta.statistics.ConstantValueStatistic
            dup
            aload 0 /* type */
            aload 1 /* value */
            invokespecial org.terracotta.statistics.ConstantValueStatistic.<init>:(Lorg/terracotta/statistics/StatisticType;Ljava/io/Serializable;)V
            areturn
        end local 1 // java.io.Serializable value
        end local 0 // org.terracotta.statistics.StatisticType type
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   type  Lorg/terracotta/statistics/StatisticType;
            0    1     1  value  TT;
    Signature: <T::Ljava/io/Serializable;>(Lorg/terracotta/statistics/StatisticType;TT;)Lorg/terracotta/statistics/ConstantValueStatistic<TT;>;
    MethodParameters:
       Name  Flags
      type   
      value  

  public static <T extends java.io.Serializable> org.terracotta.statistics.ValueStatistic<T> supply(org.terracotta.statistics.StatisticType, java.util.function.Supplier<T>);
    descriptor: (Lorg/terracotta/statistics/StatisticType;Ljava/util/function/Supplier;)Lorg/terracotta/statistics/ValueStatistic;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.terracotta.statistics.StatisticType type
        start local 1 // java.util.function.Supplier supplier
         0: .line 42
            new org.terracotta.statistics.SuppliedValueStatistic
            dup
            aload 0 /* type */
            aload 1 /* supplier */
            invokespecial org.terracotta.statistics.SuppliedValueStatistic.<init>:(Lorg/terracotta/statistics/StatisticType;Ljava/util/function/Supplier;)V
            areturn
        end local 1 // java.util.function.Supplier supplier
        end local 0 // org.terracotta.statistics.StatisticType type
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      type  Lorg/terracotta/statistics/StatisticType;
            0    1     1  supplier  Ljava/util/function/Supplier<TT;>;
    Signature: <T::Ljava/io/Serializable;>(Lorg/terracotta/statistics/StatisticType;Ljava/util/function/Supplier<TT;>;)Lorg/terracotta/statistics/ValueStatistic<TT;>;
    MethodParameters:
          Name  Flags
      type      
      supplier  

  public static <T extends java.lang.Number> org.terracotta.statistics.ValueStatistic<T> gauge(java.util.function.Supplier<T>);
    descriptor: (Ljava/util/function/Supplier;)Lorg/terracotta/statistics/ValueStatistic;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.function.Supplier supplier
         0: .line 46
            getstatic org.terracotta.statistics.StatisticType.GAUGE:Lorg/terracotta/statistics/StatisticType;
            aload 0 /* supplier */
            invokestatic org.terracotta.statistics.ValueStatistics.supply:(Lorg/terracotta/statistics/StatisticType;Ljava/util/function/Supplier;)Lorg/terracotta/statistics/ValueStatistic;
            areturn
        end local 0 // java.util.function.Supplier supplier
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  supplier  Ljava/util/function/Supplier<TT;>;
    Signature: <T:Ljava/lang/Number;>(Ljava/util/function/Supplier<TT;>;)Lorg/terracotta/statistics/ValueStatistic<TT;>;
    MethodParameters:
          Name  Flags
      supplier  

  public static <T extends java.lang.Number> org.terracotta.statistics.ValueStatistic<T> counter(java.util.function.Supplier<T>);
    descriptor: (Ljava/util/function/Supplier;)Lorg/terracotta/statistics/ValueStatistic;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.function.Supplier supplier
         0: .line 50
            getstatic org.terracotta.statistics.StatisticType.COUNTER:Lorg/terracotta/statistics/StatisticType;
            aload 0 /* supplier */
            invokestatic org.terracotta.statistics.ValueStatistics.supply:(Lorg/terracotta/statistics/StatisticType;Ljava/util/function/Supplier;)Lorg/terracotta/statistics/ValueStatistic;
            areturn
        end local 0 // java.util.function.Supplier supplier
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  supplier  Ljava/util/function/Supplier<TT;>;
    Signature: <T:Ljava/lang/Number;>(Ljava/util/function/Supplier<TT;>;)Lorg/terracotta/statistics/ValueStatistic<TT;>;
    MethodParameters:
          Name  Flags
      supplier  

  public static <T extends java.lang.Number> org.terracotta.statistics.ValueStatistic<T> rate(java.util.function.Supplier<T>);
    descriptor: (Ljava/util/function/Supplier;)Lorg/terracotta/statistics/ValueStatistic;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.function.Supplier supplier
         0: .line 54
            getstatic org.terracotta.statistics.StatisticType.RATE:Lorg/terracotta/statistics/StatisticType;
            aload 0 /* supplier */
            invokestatic org.terracotta.statistics.ValueStatistics.supply:(Lorg/terracotta/statistics/StatisticType;Ljava/util/function/Supplier;)Lorg/terracotta/statistics/ValueStatistic;
            areturn
        end local 0 // java.util.function.Supplier supplier
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  supplier  Ljava/util/function/Supplier<TT;>;
    Signature: <T:Ljava/lang/Number;>(Ljava/util/function/Supplier<TT;>;)Lorg/terracotta/statistics/ValueStatistic<TT;>;
    MethodParameters:
          Name  Flags
      supplier  

  public static <T extends java.lang.Number> org.terracotta.statistics.ValueStatistic<T> ratio(java.util.function.Supplier<T>);
    descriptor: (Ljava/util/function/Supplier;)Lorg/terracotta/statistics/ValueStatistic;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.function.Supplier supplier
         0: .line 58
            getstatic org.terracotta.statistics.StatisticType.RATIO:Lorg/terracotta/statistics/StatisticType;
            aload 0 /* supplier */
            invokestatic org.terracotta.statistics.ValueStatistics.supply:(Lorg/terracotta/statistics/StatisticType;Ljava/util/function/Supplier;)Lorg/terracotta/statistics/ValueStatistic;
            areturn
        end local 0 // java.util.function.Supplier supplier
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  supplier  Ljava/util/function/Supplier<TT;>;
    Signature: <T:Ljava/lang/Number;>(Ljava/util/function/Supplier<TT;>;)Lorg/terracotta/statistics/ValueStatistic<TT;>;
    MethodParameters:
          Name  Flags
      supplier  

  public static <T extends org.terracotta.statistics.Table> org.terracotta.statistics.ValueStatistic<T> table(java.util.function.Supplier<T>);
    descriptor: (Ljava/util/function/Supplier;)Lorg/terracotta/statistics/ValueStatistic;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.function.Supplier supplier
         0: .line 62
            getstatic org.terracotta.statistics.StatisticType.TABLE:Lorg/terracotta/statistics/StatisticType;
            aload 0 /* supplier */
            invokestatic org.terracotta.statistics.ValueStatistics.supply:(Lorg/terracotta/statistics/StatisticType;Ljava/util/function/Supplier;)Lorg/terracotta/statistics/ValueStatistic;
            areturn
        end local 0 // java.util.function.Supplier supplier
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  supplier  Ljava/util/function/Supplier<TT;>;
    Signature: <T:Lorg/terracotta/statistics/Table;>(Ljava/util/function/Supplier<TT;>;)Lorg/terracotta/statistics/ValueStatistic<TT;>;
    MethodParameters:
          Name  Flags
      supplier  

  public static <T extends java.io.Serializable> org.terracotta.statistics.ValueStatistic<T> memoize(long, java.util.concurrent.TimeUnit, org.terracotta.statistics.ValueStatistic<T>);
    descriptor: (JLjava/util/concurrent/TimeUnit;Lorg/terracotta/statistics/ValueStatistic;)Lorg/terracotta/statistics/ValueStatistic;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // long delay
        start local 2 // java.util.concurrent.TimeUnit unit
        start local 3 // org.terracotta.statistics.ValueStatistic valueStatistic
         0: .line 85
            new org.terracotta.statistics.MemoizingValueStatistic
            dup
            lload 0 /* delay */
            aload 2 /* unit */
            aload 3 /* valueStatistic */
            invokespecial org.terracotta.statistics.MemoizingValueStatistic.<init>:(JLjava/util/concurrent/TimeUnit;Lorg/terracotta/statistics/ValueStatistic;)V
            areturn
        end local 3 // org.terracotta.statistics.ValueStatistic valueStatistic
        end local 2 // java.util.concurrent.TimeUnit unit
        end local 0 // long delay
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0           delay  J
            0    1     2            unit  Ljava/util/concurrent/TimeUnit;
            0    1     3  valueStatistic  Lorg/terracotta/statistics/ValueStatistic<TT;>;
    Signature: <T::Ljava/io/Serializable;>(JLjava/util/concurrent/TimeUnit;Lorg/terracotta/statistics/ValueStatistic<TT;>;)Lorg/terracotta/statistics/ValueStatistic<TT;>;
    MethodParameters:
                Name  Flags
      delay           
      unit            
      valueStatistic  
}
SourceFile: "ValueStatistics.java"