public class org.glassfish.pfl.basic.facet.FacetAccessorImpl implements org.glassfish.pfl.basic.facet.FacetAccessor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.glassfish.pfl.basic.facet.FacetAccessorImpl
  super_class: java.lang.Object
{
  private java.lang.Object delegate;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.Class<?>, java.lang.Object> facetMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/lang/Object;>;

  public void <init>(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
        start local 1 // java.lang.Object delegate
         0: .line 39
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 36
            aload 0 /* this */
         2: .line 37
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.glassfish.pfl.basic.facet.FacetAccessorImpl.facetMap:Ljava/util/Map;
         3: .line 40
            aload 0 /* this */
            aload 1 /* delegate */
            putfield org.glassfish.pfl.basic.facet.FacetAccessorImpl.delegate:Ljava/lang/Object;
         4: .line 41
            return
        end local 1 // java.lang.Object delegate
        end local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/glassfish/pfl/basic/facet/FacetAccessorImpl;
            0    5     1  delegate  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      delegate  

  public <T> T facet(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
        start local 1 // java.lang.Class cls
         0: .line 45
            aconst_null
            astore 2 /* result */
        start local 2 // java.lang.Object result
         1: .line 47
            aload 1 /* cls */
            aload 0 /* this */
            getfield org.glassfish.pfl.basic.facet.FacetAccessorImpl.delegate:Ljava/lang/Object;
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 4
         2: .line 48
            aload 0 /* this */
            getfield org.glassfish.pfl.basic.facet.FacetAccessorImpl.delegate:Ljava/lang/Object;
            astore 2 /* result */
         3: .line 49
            goto 5
         4: .line 50
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.pfl.basic.facet.FacetAccessorImpl.facetMap:Ljava/util/Map;
            aload 1 /* cls */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* result */
         5: .line 53
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            ifnonnull 7
         6: .line 54
            aconst_null
            areturn
         7: .line 56
      StackMap locals:
      StackMap stack:
            aload 1 /* cls */
            aload 2 /* result */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object result
        end local 1 // java.lang.Class cls
        end local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/glassfish/pfl/basic/facet/FacetAccessorImpl;
            0    8     1     cls  Ljava/lang/Class<TT;>;
            1    8     2  result  Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
      Name  Flags
      cls   

  public java.util.Collection<java.lang.Object> facets();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
         0: .line 62
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* result */
        start local 1 // java.util.Collection result
         1: .line 63
            aload 1 /* result */
            aload 0 /* this */
            getfield org.glassfish.pfl.basic.facet.FacetAccessorImpl.facetMap:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 64
            aload 1 /* result */
            aload 0 /* this */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         3: .line 65
            aload 1 /* result */
            areturn
        end local 1 // java.util.Collection result
        end local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/glassfish/pfl/basic/facet/FacetAccessorImpl;
            1    4     1  result  Ljava/util/Collection<Ljava/lang/Object;>;
    Signature: ()Ljava/util/Collection<Ljava/lang/Object;>;

  public <T> void addFacet();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
        start local 1 // java.lang.Object obj
         0: .line 70
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 0 /* this */
            getfield org.glassfish.pfl.basic.facet.FacetAccessorImpl.delegate:Ljava/lang/Object;
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 71
            new java.lang.IllegalArgumentException
            dup
         2: .line 72
            ldc "Cannot add facet of supertype of this object"
         3: .line 71
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 75
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.glassfish.pfl.basic.algorithm.ClassAnalyzer.getClassAnalyzer:(Ljava/lang/Class;)Lorg/glassfish/pfl/basic/algorithm/ClassAnalyzer;
            astore 2 /* ca */
        start local 2 // org.glassfish.pfl.basic.algorithm.ClassAnalyzer ca
         5: .line 76
            aload 2 /* ca */
         6: .line 77
            new org.glassfish.pfl.basic.facet.FacetAccessorImpl$1
            dup
            aload 0 /* this */
            aload 1 /* obj */
            invokespecial org.glassfish.pfl.basic.facet.FacetAccessorImpl$1.<init>:(Lorg/glassfish/pfl/basic/facet/FacetAccessorImpl;Ljava/lang/Object;)V
         7: .line 76
            invokevirtual org.glassfish.pfl.basic.algorithm.ClassAnalyzer.findClasses:(Lorg/glassfish/pfl/basic/func/UnaryPredicate;)Ljava/util/List;
            pop
         8: .line 83
            return
        end local 2 // org.glassfish.pfl.basic.algorithm.ClassAnalyzer ca
        end local 1 // java.lang.Object obj
        end local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/glassfish/pfl/basic/facet/FacetAccessorImpl;
            0    9     1   obj  TT;
            5    9     2    ca  Lorg/glassfish/pfl/basic/algorithm/ClassAnalyzer;
    Signature: <T:Ljava/lang/Object;>(TT;)V
    MethodParameters:
      Name  Flags
      obj   final

  public java.lang.Object invoke(java.lang.reflect.Method, java.lang.Object[]);
    descriptor: (Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
        start local 1 // java.lang.reflect.Method method
        start local 2 // java.lang.Object[] args
         0: .line 87
            aload 0 /* this */
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual org.glassfish.pfl.basic.facet.FacetAccessorImpl.facet:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 3 /* target */
        start local 3 // java.lang.Object target
         1: .line 88
            aload 3 /* target */
            ifnonnull 5
         2: .line 89
            new java.lang.IllegalArgumentException
            dup
         3: .line 90
            new java.lang.StringBuilder
            dup
            ldc "No facet available for method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 89
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 95
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.glassfish.pfl.basic.algorithm.ClassAnalyzer.getClassAnalyzer:(Ljava/lang/Class;)Lorg/glassfish/pfl/basic/algorithm/ClassAnalyzer;
         6: .line 94
            astore 4 /* ca */
        start local 4 // org.glassfish.pfl.basic.algorithm.ClassAnalyzer ca
         7: .line 96
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            astore 5 /* mname */
        start local 5 // java.lang.String mname
         8: .line 97
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 6 /* mparams */
        start local 6 // java.lang.Class[] mparams
         9: .line 98
            new org.glassfish.pfl.basic.contain.Holder
            dup
            invokespecial org.glassfish.pfl.basic.contain.Holder.<init>:()V
            astore 7 /* mholder */
        start local 7 // org.glassfish.pfl.basic.contain.Holder mholder
        10: .line 100
            aload 4 /* ca */
        11: .line 101
            new org.glassfish.pfl.basic.facet.FacetAccessorImpl$2
            dup
            aload 0 /* this */
            aload 7 /* mholder */
            aload 5 /* mname */
            aload 6 /* mparams */
            invokespecial org.glassfish.pfl.basic.facet.FacetAccessorImpl$2.<init>:(Lorg/glassfish/pfl/basic/facet/FacetAccessorImpl;Lorg/glassfish/pfl/basic/contain/Holder;Ljava/lang/String;[Ljava/lang/Class;)V
        12: .line 100
            invokevirtual org.glassfish.pfl.basic.algorithm.ClassAnalyzer.findClasses:(Lorg/glassfish/pfl/basic/func/UnaryPredicate;)Ljava/util/List;
            pop
        13: .line 119
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            ifnonnull 16
        14: .line 120
            aload 7 /* mholder */
            invokevirtual org.glassfish.pfl.basic.contain.Holder.content:()Ljava/lang/Object;
            checkcast java.lang.reflect.Method
            iconst_1
            invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
        15: .line 121
            goto 17
        16: .line 122
      StackMap locals: org.glassfish.pfl.basic.facet.FacetAccessorImpl java.lang.reflect.Method java.lang.Object[] java.lang.Object org.glassfish.pfl.basic.algorithm.ClassAnalyzer java.lang.String java.lang.Class[] org.glassfish.pfl.basic.contain.Holder
      StackMap stack:
            new org.glassfish.pfl.basic.facet.FacetAccessorImpl$3
            dup
            aload 0 /* this */
            aload 7 /* mholder */
            invokespecial org.glassfish.pfl.basic.facet.FacetAccessorImpl$3.<init>:(Lorg/glassfish/pfl/basic/facet/FacetAccessorImpl;Lorg/glassfish/pfl/basic/contain/Holder;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
        17: .line 131
      StackMap locals:
      StackMap stack:
            aload 7 /* mholder */
            invokevirtual org.glassfish.pfl.basic.contain.Holder.content:()Ljava/lang/Object;
            checkcast java.lang.reflect.Method
            aload 3 /* target */
            aload 2 /* args */
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* result */
        start local 8 // java.lang.Object result
        18: .line 132
            aload 8 /* result */
        19: areturn
        end local 8 // java.lang.Object result
        end local 7 // org.glassfish.pfl.basic.contain.Holder mholder
        end local 6 // java.lang.Class[] mparams
        end local 5 // java.lang.String mname
        end local 4 // org.glassfish.pfl.basic.algorithm.ClassAnalyzer ca
        20: .line 133
      StackMap locals: org.glassfish.pfl.basic.facet.FacetAccessorImpl java.lang.reflect.Method java.lang.Object[] java.lang.Object
      StackMap stack: java.lang.SecurityException
            astore 4 /* ex */
        start local 4 // java.lang.SecurityException ex
        21: .line 134
            new java.lang.IllegalArgumentException
            dup
        22: .line 135
            ldc "Exception on invocation"
            aload 4 /* ex */
        23: .line 134
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.SecurityException ex
        24: .line 136
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            astore 4 /* ex */
        start local 4 // java.lang.IllegalAccessException ex
        25: .line 137
            new java.lang.IllegalArgumentException
            dup
        26: .line 138
            ldc "Exception on invocation"
            aload 4 /* ex */
        27: .line 137
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.IllegalAccessException ex
        28: .line 139
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 4 /* ex */
        start local 4 // java.lang.IllegalArgumentException ex
        29: .line 140
            new java.lang.IllegalArgumentException
            dup
        30: .line 141
            ldc "Exception on invocation"
            aload 4 /* ex */
        31: .line 140
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.IllegalArgumentException ex
        32: .line 142
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 4 /* ex */
        start local 4 // java.lang.reflect.InvocationTargetException ex
        33: .line 143
            new java.lang.IllegalArgumentException
            dup
        34: .line 144
            ldc "Exception on invocation"
            aload 4 /* ex */
        35: .line 143
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.reflect.InvocationTargetException ex
        end local 3 // java.lang.Object target
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.reflect.Method method
        end local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   36     0     this  Lorg/glassfish/pfl/basic/facet/FacetAccessorImpl;
            0   36     1   method  Ljava/lang/reflect/Method;
            0   36     2     args  [Ljava/lang/Object;
            1   36     3   target  Ljava/lang/Object;
            7   20     4       ca  Lorg/glassfish/pfl/basic/algorithm/ClassAnalyzer;
            8   20     5    mname  Ljava/lang/String;
            9   20     6  mparams  [Ljava/lang/Class;
           10   20     7  mholder  Lorg/glassfish/pfl/basic/contain/Holder<Ljava/lang/reflect/Method;>;
           18   20     8   result  Ljava/lang/Object;
           21   24     4       ex  Ljava/lang/SecurityException;
           25   28     4       ex  Ljava/lang/IllegalAccessException;
           29   32     4       ex  Ljava/lang/IllegalArgumentException;
           33   36     4       ex  Ljava/lang/reflect/InvocationTargetException;
      Exception table:
        from    to  target  type
           5    19      20  Class java.lang.SecurityException
           5    19      24  Class java.lang.IllegalAccessException
           5    19      28  Class java.lang.IllegalArgumentException
           5    19      32  Class java.lang.reflect.InvocationTargetException
    MethodParameters:
        Name  Flags
      method  final
      args    final

  public java.lang.Object get(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
        start local 1 // java.lang.reflect.Field field
         0: .line 150
            aconst_null
            astore 2 /* result */
        start local 2 // java.lang.Object result
         1: .line 152
            aload 0 /* this */
            aload 1 /* field */
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual org.glassfish.pfl.basic.facet.FacetAccessorImpl.facet:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 3 /* target */
        start local 3 // java.lang.Object target
         2: .line 155
            aload 1 /* field */
            aload 3 /* target */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* result */
         3: .line 156
            goto 12
      StackMap locals: org.glassfish.pfl.basic.facet.FacetAccessorImpl java.lang.reflect.Field java.lang.Object java.lang.Object
      StackMap stack: java.lang.IllegalArgumentException
         4: astore 4 /* ex */
        start local 4 // java.lang.IllegalArgumentException ex
         5: .line 157
            new java.lang.IllegalArgumentException
            dup
         6: .line 158
            ldc "Exception on field get"
            aload 4 /* ex */
         7: .line 157
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.IllegalArgumentException ex
         8: .line 159
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            astore 4 /* ex */
        start local 4 // java.lang.IllegalAccessException ex
         9: .line 160
            new java.lang.IllegalArgumentException
            dup
        10: .line 161
            ldc "Exception on field get"
            aload 4 /* ex */
        11: .line 160
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.IllegalAccessException ex
        12: .line 164
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 3 // java.lang.Object target
        end local 2 // java.lang.Object result
        end local 1 // java.lang.reflect.Field field
        end local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lorg/glassfish/pfl/basic/facet/FacetAccessorImpl;
            0   13     1   field  Ljava/lang/reflect/Field;
            1   13     2  result  Ljava/lang/Object;
            2   13     3  target  Ljava/lang/Object;
            5    8     4      ex  Ljava/lang/IllegalArgumentException;
            9   12     4      ex  Ljava/lang/IllegalAccessException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.IllegalArgumentException
           2     3       8  Class java.lang.IllegalAccessException
    MethodParameters:
       Name  Flags
      field  

  public void set(java.lang.reflect.Field, java.lang.Object);
    descriptor: (Ljava/lang/reflect/Field;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
        start local 1 // java.lang.reflect.Field field
        start local 2 // java.lang.Object value
         0: .line 169
            aload 0 /* this */
            aload 1 /* field */
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual org.glassfish.pfl.basic.facet.FacetAccessorImpl.facet:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 3 /* target */
        start local 3 // java.lang.Object target
         1: .line 172
            aload 1 /* field */
            aload 3 /* target */
            aload 2 /* value */
            invokevirtual java.lang.reflect.Field.set:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 173
            goto 11
      StackMap locals: org.glassfish.pfl.basic.facet.FacetAccessorImpl java.lang.reflect.Field java.lang.Object java.lang.Object
      StackMap stack: java.lang.IllegalArgumentException
         3: astore 4 /* ex */
        start local 4 // java.lang.IllegalArgumentException ex
         4: .line 174
            new java.lang.IllegalArgumentException
            dup
         5: .line 175
            ldc "Exception on field get"
            aload 4 /* ex */
         6: .line 174
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.IllegalArgumentException ex
         7: .line 176
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            astore 4 /* ex */
        start local 4 // java.lang.IllegalAccessException ex
         8: .line 177
            new java.lang.IllegalArgumentException
            dup
         9: .line 178
            ldc "Exception on field get"
            aload 4 /* ex */
        10: .line 177
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.IllegalAccessException ex
        11: .line 180
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object target
        end local 2 // java.lang.Object value
        end local 1 // java.lang.reflect.Field field
        end local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/glassfish/pfl/basic/facet/FacetAccessorImpl;
            0   12     1   field  Ljava/lang/reflect/Field;
            0   12     2   value  Ljava/lang/Object;
            1   12     3  target  Ljava/lang/Object;
            4    7     4      ex  Ljava/lang/IllegalArgumentException;
            8   11     4      ex  Ljava/lang/IllegalAccessException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.IllegalArgumentException
           1     2       7  Class java.lang.IllegalAccessException
    MethodParameters:
       Name  Flags
      field  
      value  

  public void removeFacet(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
        start local 1 // java.lang.Class cls
         0: .line 184
            aload 1 /* cls */
            aload 0 /* this */
            getfield org.glassfish.pfl.basic.facet.FacetAccessorImpl.delegate:Ljava/lang/Object;
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 185
            new java.lang.IllegalArgumentException
            dup
         2: .line 186
            ldc "Cannot add facet of supertype of this object"
         3: .line 185
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 189
      StackMap locals:
      StackMap stack:
            aload 1 /* cls */
            invokestatic org.glassfish.pfl.basic.algorithm.ClassAnalyzer.getClassAnalyzer:(Ljava/lang/Class;)Lorg/glassfish/pfl/basic/algorithm/ClassAnalyzer;
            astore 2 /* ca */
        start local 2 // org.glassfish.pfl.basic.algorithm.ClassAnalyzer ca
         5: .line 190
            aload 2 /* ca */
         6: .line 191
            new org.glassfish.pfl.basic.facet.FacetAccessorImpl$4
            dup
            aload 0 /* this */
            invokespecial org.glassfish.pfl.basic.facet.FacetAccessorImpl$4.<init>:(Lorg/glassfish/pfl/basic/facet/FacetAccessorImpl;)V
         7: .line 190
            invokevirtual org.glassfish.pfl.basic.algorithm.ClassAnalyzer.findClasses:(Lorg/glassfish/pfl/basic/func/UnaryPredicate;)Ljava/util/List;
            pop
         8: .line 197
            return
        end local 2 // org.glassfish.pfl.basic.algorithm.ClassAnalyzer ca
        end local 1 // java.lang.Class cls
        end local 0 // org.glassfish.pfl.basic.facet.FacetAccessorImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/glassfish/pfl/basic/facet/FacetAccessorImpl;
            0    9     1   cls  Ljava/lang/Class<*>;
            5    9     2    ca  Lorg/glassfish/pfl/basic/algorithm/ClassAnalyzer;
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
      Name  Flags
      cls   
}
SourceFile: "FacetAccessorImpl.java"
NestMembers:
  org.glassfish.pfl.basic.facet.FacetAccessorImpl$1  org.glassfish.pfl.basic.facet.FacetAccessorImpl$2  org.glassfish.pfl.basic.facet.FacetAccessorImpl$3  org.glassfish.pfl.basic.facet.FacetAccessorImpl$4
InnerClasses:
  org.glassfish.pfl.basic.facet.FacetAccessorImpl$1
  org.glassfish.pfl.basic.facet.FacetAccessorImpl$2
  org.glassfish.pfl.basic.facet.FacetAccessorImpl$3
  org.glassfish.pfl.basic.facet.FacetAccessorImpl$4