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 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.glassfish.pfl.basic.facet.FacetAccessorImpl.facetMap:Ljava/util/Map;
3: aload 0
aload 1
putfield org.glassfish.pfl.basic.facet.FacetAccessorImpl.delegate:Ljava/lang/Object;
4: return
end local 1 end local 0 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 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
aload 0
getfield org.glassfish.pfl.basic.facet.FacetAccessorImpl.delegate:Ljava/lang/Object;
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 4
2: aload 0
getfield org.glassfish.pfl.basic.facet.FacetAccessorImpl.delegate:Ljava/lang/Object;
astore 2
3: goto 5
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield org.glassfish.pfl.basic.facet.FacetAccessorImpl.facetMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
5: StackMap locals:
StackMap stack:
aload 2
ifnonnull 7
6: aconst_null
areturn
7: StackMap locals:
StackMap stack:
aload 1
aload 2
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 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 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 1
aload 0
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: aload 1
aload 0
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
3: aload 1
areturn
end local 1 end local 0 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 start local 1 0: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 0
getfield org.glassfish.pfl.basic.facet.FacetAccessorImpl.delegate:Ljava/lang/Object;
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 4
1: new java.lang.IllegalArgumentException
dup
2: ldc "Cannot add facet of supertype of this object"
3: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
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
start local 2 5: aload 2
6: new org.glassfish.pfl.basic.facet.FacetAccessorImpl$1
dup
aload 0
aload 1
invokespecial org.glassfish.pfl.basic.facet.FacetAccessorImpl$1.<init>:(Lorg/glassfish/pfl/basic/facet/FacetAccessorImpl;Ljava/lang/Object;)V
7: invokevirtual org.glassfish.pfl.basic.algorithm.ClassAnalyzer.findClasses:(Lorg/glassfish/pfl/basic/func/UnaryPredicate;)Ljava/util/List;
pop
8: return
end local 2 end local 1 end local 0 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 start local 1 start local 2 0: aload 0
aload 1
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
start local 3 1: aload 3
ifnonnull 5
2: new java.lang.IllegalArgumentException
dup
3: new java.lang.StringBuilder
dup
ldc "No facet available for method "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.lang.Object
StackMap stack:
aload 3
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: astore 4
start local 4 7: aload 1
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
astore 5
start local 5 8: aload 1
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
astore 6
start local 6 9: new org.glassfish.pfl.basic.contain.Holder
dup
invokespecial org.glassfish.pfl.basic.contain.Holder.<init>:()V
astore 7
start local 7 10: aload 4
11: new org.glassfish.pfl.basic.facet.FacetAccessorImpl$2
dup
aload 0
aload 7
aload 5
aload 6
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: invokevirtual org.glassfish.pfl.basic.algorithm.ClassAnalyzer.findClasses:(Lorg/glassfish/pfl/basic/func/UnaryPredicate;)Ljava/util/List;
pop
13: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
ifnonnull 16
14: aload 7
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: goto 17
16: 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
aload 7
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: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.glassfish.pfl.basic.contain.Holder.content:()Ljava/lang/Object;
checkcast java.lang.reflect.Method
aload 3
aload 2
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 8
start local 8 18: aload 8
19: areturn
end local 8 end local 7 end local 6 end local 5 end local 4 20: 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
start local 4 21: new java.lang.IllegalArgumentException
dup
22: ldc "Exception on invocation"
aload 4
23: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 24: StackMap locals:
StackMap stack: java.lang.IllegalAccessException
astore 4
start local 4 25: new java.lang.IllegalArgumentException
dup
26: ldc "Exception on invocation"
aload 4
27: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 28: StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
astore 4
start local 4 29: new java.lang.IllegalArgumentException
dup
30: ldc "Exception on invocation"
aload 4
31: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 32: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 4
start local 4 33: new java.lang.IllegalArgumentException
dup
34: ldc "Exception on invocation"
aload 4
35: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
aload 1
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
start local 3 2: aload 1
aload 3
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
3: 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
start local 4 5: new java.lang.IllegalArgumentException
dup
6: ldc "Exception on field get"
aload 4
7: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 8: StackMap locals:
StackMap stack: java.lang.IllegalAccessException
astore 4
start local 4 9: new java.lang.IllegalArgumentException
dup
10: ldc "Exception on field get"
aload 4
11: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 12: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 0: aload 0
aload 1
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
start local 3 1: aload 1
aload 3
aload 2
invokevirtual java.lang.reflect.Field.set:(Ljava/lang/Object;Ljava/lang/Object;)V
2: 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
start local 4 4: new java.lang.IllegalArgumentException
dup
5: ldc "Exception on field get"
aload 4
6: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 7: StackMap locals:
StackMap stack: java.lang.IllegalAccessException
astore 4
start local 4 8: new java.lang.IllegalArgumentException
dup
9: ldc "Exception on field get"
aload 4
10: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 11: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 1
aload 0
getfield org.glassfish.pfl.basic.facet.FacetAccessorImpl.delegate:Ljava/lang/Object;
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 4
1: new java.lang.IllegalArgumentException
dup
2: ldc "Cannot add facet of supertype of this object"
3: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
invokestatic org.glassfish.pfl.basic.algorithm.ClassAnalyzer.getClassAnalyzer:(Ljava/lang/Class;)Lorg/glassfish/pfl/basic/algorithm/ClassAnalyzer;
astore 2
start local 2 5: aload 2
6: new org.glassfish.pfl.basic.facet.FacetAccessorImpl$4
dup
aload 0
invokespecial org.glassfish.pfl.basic.facet.FacetAccessorImpl$4.<init>:(Lorg/glassfish/pfl/basic/facet/FacetAccessorImpl;)V
7: invokevirtual org.glassfish.pfl.basic.algorithm.ClassAnalyzer.findClasses:(Lorg/glassfish/pfl/basic/func/UnaryPredicate;)Ljava/util/List;
pop
8: return
end local 2 end local 1 end local 0 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