public class org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults
  super_class: java.lang.Object
{
  private static java.util.Map<java.lang.String, java.lang.String> prefixTable;
    descriptor: Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private static org.glassfish.pfl.tf.spi.MethodMonitorFactory operationTracerImpl;
    descriptor: Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static org.glassfish.pfl.tf.spi.MethodMonitorFactory dprintImpl;
    descriptor: Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static org.glassfish.pfl.tf.spi.MethodMonitorFactory noOpImpl;
    descriptor: Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 38
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
         1: .line 37
            putstatic org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults.prefixTable:Ljava/util/Map;
         2: .line 71
            new org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$1
            dup
            ldc "OperationTracerImpl"
            invokespecial org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$1.<init>:(Ljava/lang/String;)V
         3: .line 70
            putstatic org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults.operationTracerImpl:Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
         4: .line 104
            new org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$2
            dup
            ldc "DprintImpl"
            invokespecial org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$2.<init>:(Ljava/lang/String;)V
         5: .line 103
            putstatic org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults.dprintImpl:Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
         6: .line 196
            new org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$3
            dup
            ldc "NoOp"
            invokespecial org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$3.<init>:(Ljava/lang/String;)V
         7: .line 195
            putstatic org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults.noOpImpl:Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
         8: .line 213
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults this
         0: .line 35
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/pfl/tf/spi/MethodMonitorFactoryDefaults;

  public static void addPrefix(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String pkg
        start local 1 // java.lang.String symbol
         0: .line 50
            aload 0 /* pkg */
            aload 0 /* pkg */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 46
            if_icmpne 3
         1: .line 51
            aload 0 /* pkg */
            astore 2 /* str */
        start local 2 // java.lang.String str
         2: .line 52
            goto 4
        end local 2 // java.lang.String str
         3: .line 53
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* pkg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* str */
        start local 2 // java.lang.String str
         4: .line 56
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults.prefixTable:Ljava/util/Map;
            aload 2 /* str */
            aload 1 /* symbol */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 57
            return
        end local 2 // java.lang.String str
        end local 1 // java.lang.String symbol
        end local 0 // java.lang.String pkg
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0     pkg  Ljava/lang/String;
            0    6     1  symbol  Ljava/lang/String;
            2    3     2     str  Ljava/lang/String;
            4    6     2     str  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      pkg     
      symbol  

  private static java.lang.String compressClassName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.String name
         0: .line 60
            getstatic org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults.prefixTable:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 6
      StackMap locals: java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 1 /* entry */
        start local 1 // java.util.Map$Entry entry
         2: .line 61
            aload 0 /* name */
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 6
         3: .line 62
            new java.lang.StringBuilder
            dup
            ldc "("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 63
            aload 0 /* name */
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 62
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.util.Map$Entry entry
         6: .line 60
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         7: .line 67
            aload 0 /* name */
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   name  Ljava/lang/String;
            2    6     1  entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      name  

  public static <T> org.glassfish.pfl.tf.spi.MethodMonitorFactory makeTimingImpl(org.glassfish.pfl.tf.timer.spi.TimerManager<T>);
    descriptor: (Lorg/glassfish/pfl/tf/timer/spi/TimerManager;)Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.glassfish.pfl.tf.timer.spi.TimerManager tm
         0: .line 218
            new java.lang.StringBuilder
            dup
            ldc "Timing["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* tm */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* name */
        start local 1 // java.lang.String name
         1: .line 220
            new org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$4
            dup
            aload 1 /* name */
            aload 1 /* name */
            aload 0 /* tm */
            invokespecial org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$4.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/glassfish/pfl/tf/timer/spi/TimerManager;)V
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.glassfish.pfl.tf.timer.spi.TimerManager tm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    tm  Lorg/glassfish/pfl/tf/timer/spi/TimerManager<TT;>;
            1    2     1  name  Ljava/lang/String;
    Signature: <T:Ljava/lang/Object;>(Lorg/glassfish/pfl/tf/timer/spi/TimerManager<TT;>;)Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
    MethodParameters:
      Name  Flags
      tm    final

  public static org.glassfish.pfl.tf.spi.MethodMonitorFactory operationTracer();
    descriptor: ()Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 272
            getstatic org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults.operationTracerImpl:Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.glassfish.pfl.tf.spi.MethodMonitorFactory noOp();
    descriptor: ()Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 276
            getstatic org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults.noOpImpl:Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.glassfish.pfl.tf.spi.MethodMonitorFactory dprint();
    descriptor: ()Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 280
            getstatic org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults.dprintImpl:Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static org.glassfish.pfl.tf.spi.MethodMonitor composeMM(java.util.List<org.glassfish.pfl.tf.spi.MethodMonitor>);
    descriptor: (Ljava/util/List;)Lorg/glassfish/pfl/tf/spi/MethodMonitor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=8, args_size=1
        start local 0 // java.util.List mms
         0: .line 284
            aload 0 /* mms */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
         1: .line 285
            getstatic org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults.noOpImpl:Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
            aconst_null
            invokeinterface org.glassfish.pfl.tf.spi.MethodMonitorFactory.create:(Ljava/lang/Class;)Lorg/glassfish/pfl/tf/spi/MethodMonitor;
            areturn
         2: .line 288
      StackMap locals:
      StackMap stack:
            aload 0 /* mms */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 5
         3: .line 289
            aload 0 /* mms */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 5
            aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.glassfish.pfl.tf.spi.MethodMonitor
            astore 1 /* mm */
        start local 1 // org.glassfish.pfl.tf.spi.MethodMonitor mm
         4: .line 290
            aload 1 /* mm */
            areturn
        end local 1 // org.glassfish.pfl.tf.spi.MethodMonitor mm
         5: .line 294
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* factories */
        start local 1 // java.util.Set factories
         6: .line 295
            aconst_null
            astore 2 /* cls */
        start local 2 // java.lang.Class cls
         7: .line 296
            aload 0 /* mms */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 16
      StackMap locals: java.util.List java.util.Set java.lang.Class top java.util.Iterator
      StackMap stack:
         8: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.glassfish.pfl.tf.spi.MethodMonitor
            astore 3 /* mm */
        start local 3 // org.glassfish.pfl.tf.spi.MethodMonitor mm
         9: .line 297
            aload 1 /* factories */
            aload 3 /* mm */
            invokeinterface org.glassfish.pfl.tf.spi.MethodMonitor.factory:()Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        10: .line 298
            aload 3 /* mm */
            invokeinterface org.glassfish.pfl.tf.spi.MethodMonitor.myClass:()Ljava/lang/Class;
            astore 5 /* mmClass */
        start local 5 // java.lang.Class mmClass
        11: .line 299
            aload 2 /* cls */
            ifnonnull 14
        12: .line 300
            aload 5 /* mmClass */
            astore 2 /* cls */
        13: .line 301
            goto 16
      StackMap locals: java.util.List java.util.Set java.lang.Class org.glassfish.pfl.tf.spi.MethodMonitor java.util.Iterator java.lang.Class
      StackMap stack:
        14: aload 2 /* cls */
            aload 5 /* mmClass */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 16
        15: .line 302
            new java.lang.RuntimeException
            dup
            ldc "MethodMonitors not composable: not all instantiated from the same class"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.Class mmClass
        end local 3 // org.glassfish.pfl.tf.spi.MethodMonitor mm
        16: .line 296
      StackMap locals: java.util.List java.util.Set java.lang.Class top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        17: .line 306
            aload 1 /* factories */
            invokestatic org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults.compose:(Ljava/util/Collection;)Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
            astore 3 /* mmf */
        start local 3 // org.glassfish.pfl.tf.spi.MethodMonitorFactory mmf
        18: .line 308
            new java.lang.StringBuilder
            dup
            ldc "compose("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 4 /* sb */
        start local 4 // java.lang.StringBuilder sb
        19: .line 309
            iconst_1
            istore 5 /* first */
        start local 5 // boolean first
        20: .line 310
            aload 0 /* mms */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 27
      StackMap locals: java.util.List java.util.Set java.lang.Class org.glassfish.pfl.tf.spi.MethodMonitorFactory java.lang.StringBuilder int top java.util.Iterator
      StackMap stack:
        21: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.glassfish.pfl.tf.spi.MethodMonitor
            astore 6 /* mm */
        start local 6 // org.glassfish.pfl.tf.spi.MethodMonitor mm
        22: .line 311
            iload 5 /* first */
            ifeq 25
        23: .line 312
            iconst_0
            istore 5 /* first */
        24: .line 313
            goto 26
        25: .line 314
      StackMap locals: java.util.List java.util.Set java.lang.Class org.glassfish.pfl.tf.spi.MethodMonitorFactory java.lang.StringBuilder int org.glassfish.pfl.tf.spi.MethodMonitor java.util.Iterator
      StackMap stack:
            aload 4 /* sb */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        26: .line 317
      StackMap locals:
      StackMap stack:
            aload 4 /* sb */
            aload 6 /* mm */
            invokeinterface org.glassfish.pfl.tf.spi.MethodMonitor.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 6 // org.glassfish.pfl.tf.spi.MethodMonitor mm
        27: .line 310
      StackMap locals: java.util.List java.util.Set java.lang.Class org.glassfish.pfl.tf.spi.MethodMonitorFactory java.lang.StringBuilder int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        28: .line 320
            aload 4 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
        29: .line 322
            new org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$5
            dup
            aload 6 /* name */
            aload 2 /* cls */
            aload 3 /* mmf */
            aload 0 /* mms */
            invokespecial org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$5.<init>:(Ljava/lang/String;Ljava/lang/Class;Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;Ljava/util/List;)V
            areturn
        end local 6 // java.lang.String name
        end local 5 // boolean first
        end local 4 // java.lang.StringBuilder sb
        end local 3 // org.glassfish.pfl.tf.spi.MethodMonitorFactory mmf
        end local 2 // java.lang.Class cls
        end local 1 // java.util.Set factories
        end local 0 // java.util.List mms
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   30     0        mms  Ljava/util/List<Lorg/glassfish/pfl/tf/spi/MethodMonitor;>;
            4    5     1         mm  Lorg/glassfish/pfl/tf/spi/MethodMonitor;
            6   30     1  factories  Ljava/util/Set<Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;>;
            7   30     2        cls  Ljava/lang/Class<*>;
            9   16     3         mm  Lorg/glassfish/pfl/tf/spi/MethodMonitor;
           11   16     5    mmClass  Ljava/lang/Class<*>;
           18   30     3        mmf  Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
           19   30     4         sb  Ljava/lang/StringBuilder;
           20   30     5      first  Z
           22   27     6         mm  Lorg/glassfish/pfl/tf/spi/MethodMonitor;
           29   30     6       name  Ljava/lang/String;
    Signature: (Ljava/util/List<Lorg/glassfish/pfl/tf/spi/MethodMonitor;>;)Lorg/glassfish/pfl/tf/spi/MethodMonitor;
    MethodParameters:
      Name  Flags
      mms   final

  public static org.glassfish.pfl.tf.spi.MethodMonitorFactory compose(java.util.Collection<org.glassfish.pfl.tf.spi.MethodMonitorFactory>);
    descriptor: (Ljava/util/Collection;)Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.util.Collection factories
         0: .line 366
            aload 0 /* factories */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 2
         1: .line 367
            getstatic org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults.noOpImpl:Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
            areturn
         2: .line 370
      StackMap locals:
      StackMap stack:
            aload 0 /* factories */
            invokeinterface java.util.Collection.size:()I
            iconst_1
            if_icmpne 5
         3: .line 371
            aload 0 /* factories */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 5
            aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.glassfish.pfl.tf.spi.MethodMonitorFactory
            astore 1 /* mmf */
        start local 1 // org.glassfish.pfl.tf.spi.MethodMonitorFactory mmf
         4: .line 372
            aload 1 /* mmf */
            areturn
        end local 1 // org.glassfish.pfl.tf.spi.MethodMonitorFactory mmf
         5: .line 377
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
         6: .line 376
            astore 1 /* mmfs */
        start local 1 // java.util.Set mmfs
         7: .line 378
            aload 0 /* factories */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 10
      StackMap locals: java.util.Collection java.util.Set top java.util.Iterator
      StackMap stack:
         8: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.glassfish.pfl.tf.spi.MethodMonitorFactory
            astore 2 /* mmf */
        start local 2 // org.glassfish.pfl.tf.spi.MethodMonitorFactory mmf
         9: .line 379
            aload 1 /* mmfs */
            aload 2 /* mmf */
            invokeinterface org.glassfish.pfl.tf.spi.MethodMonitorFactory.contents:()Ljava/util/Collection;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 2 // org.glassfish.pfl.tf.spi.MethodMonitorFactory mmf
        10: .line 378
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 382
            new java.lang.StringBuilder
            dup
            ldc "compose("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
        12: .line 383
            iconst_1
            istore 3 /* first */
        start local 3 // boolean first
        13: .line 384
            aload 1 /* mmfs */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 20
      StackMap locals: java.util.Collection java.util.Set java.lang.StringBuilder int top java.util.Iterator
      StackMap stack:
        14: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.glassfish.pfl.tf.spi.MethodMonitorFactory
            astore 4 /* mmf */
        start local 4 // org.glassfish.pfl.tf.spi.MethodMonitorFactory mmf
        15: .line 385
            iload 3 /* first */
            ifeq 18
        16: .line 386
            iconst_0
            istore 3 /* first */
        17: .line 387
            goto 19
        18: .line 388
      StackMap locals: java.util.Collection java.util.Set java.lang.StringBuilder int org.glassfish.pfl.tf.spi.MethodMonitorFactory java.util.Iterator
      StackMap stack:
            aload 2 /* sb */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        19: .line 391
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            aload 4 /* mmf */
            invokeinterface org.glassfish.pfl.tf.spi.MethodMonitorFactory.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 4 // org.glassfish.pfl.tf.spi.MethodMonitorFactory mmf
        20: .line 384
      StackMap locals: java.util.Collection java.util.Set java.lang.StringBuilder int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        21: .line 394
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
        22: .line 396
            new org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$6
            dup
            aload 4 /* name */
            aload 1 /* mmfs */
            invokespecial org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$6.<init>:(Ljava/lang/String;Ljava/util/Set;)V
            areturn
        end local 4 // java.lang.String name
        end local 3 // boolean first
        end local 2 // java.lang.StringBuilder sb
        end local 1 // java.util.Set mmfs
        end local 0 // java.util.Collection factories
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   23     0  factories  Ljava/util/Collection<Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;>;
            4    5     1        mmf  Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
            7   23     1       mmfs  Ljava/util/Set<Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;>;
            9   10     2        mmf  Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
           12   23     2         sb  Ljava/lang/StringBuilder;
           13   23     3      first  Z
           15   20     4        mmf  Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
           22   23     4       name  Ljava/lang/String;
    Signature: (Ljava/util/Collection<Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;>;)Lorg/glassfish/pfl/tf/spi/MethodMonitorFactory;
    MethodParameters:
           Name  Flags
      factories  final
}
SourceFile: "MethodMonitorFactoryDefaults.java"
NestMembers:
  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$1  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$1$1  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$2  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$2$1  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$3  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$3$1  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$4  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$4$1  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$5  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$6
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$1
  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$2
  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$3
  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$4
  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$5
  org.glassfish.pfl.tf.spi.MethodMonitorFactoryDefaults$6