final class org.springframework.beans.GenericTypeAwarePropertyDescriptor extends java.beans.PropertyDescriptor
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.springframework.beans.GenericTypeAwarePropertyDescriptor
super_class: java.beans.PropertyDescriptor
{
private final java.lang.Class<?> beanClass;
descriptor: Ljava/lang/Class;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Class<*>;
private final java.lang.reflect.Method readMethod;
descriptor: Ljava/lang/reflect/Method;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private final java.lang.reflect.Method writeMethod;
descriptor: Ljava/lang/reflect/Method;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private volatile java.util.Set<java.lang.reflect.Method> ambiguousWriteMethods;
descriptor: Ljava/util/Set;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/Set<Ljava/lang/reflect/Method;>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private org.springframework.core.MethodParameter writeMethodParameter;
descriptor: Lorg/springframework/core/MethodParameter;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.lang.Class<?> propertyType;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private final java.lang.Class<?> propertyEditorClass;
descriptor: Ljava/lang/Class;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Class<*>;
public void <init>(java.lang.Class<?>, java.lang.String, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Class<?>);
descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=13, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 2
aconst_null
aconst_null
invokespecial java.beans.PropertyDescriptor.<init>:(Ljava/lang/String;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
1: aload 0
aload 1
putfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.beanClass:Ljava/lang/Class;
2: aload 3
ifnull 3
aload 3
invokestatic org.springframework.core.BridgeMethodResolver.findBridgedMethod:(Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
goto 4
StackMap locals: org.springframework.beans.GenericTypeAwarePropertyDescriptor java.lang.Class java.lang.String java.lang.reflect.Method java.lang.reflect.Method java.lang.Class
StackMap stack:
3: aconst_null
StackMap locals:
StackMap stack: java.lang.reflect.Method
4: astore 6
start local 6 5: aload 4
ifnull 6
aload 4
invokestatic org.springframework.core.BridgeMethodResolver.findBridgedMethod:(Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
goto 7
StackMap locals: java.lang.reflect.Method
StackMap stack:
6: aconst_null
StackMap locals:
StackMap stack: java.lang.reflect.Method
7: astore 7
start local 7 8: aload 7
ifnonnull 13
aload 6
ifnull 13
9: aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.beanClass:Ljava/lang/Class;
new java.lang.StringBuilder
dup
ldc "set"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.springframework.beans.GenericTypeAwarePropertyDescriptor.getName:()Ljava/lang/String;
invokestatic org.springframework.util.StringUtils.capitalize:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aconst_null
10: invokestatic org.springframework.util.ClassUtils.getMethodIfAvailable:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 8
start local 8 11: aload 8
ifnull 13
aload 8
invokevirtual java.lang.reflect.Method.getParameterCount:()I
iconst_1
if_icmpne 13
12: aload 8
astore 7
end local 8 13: StackMap locals: java.lang.reflect.Method
StackMap stack:
aload 0
aload 6
putfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.readMethod:Ljava/lang/reflect/Method;
14: aload 0
aload 7
putfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.writeMethod:Ljava/lang/reflect/Method;
15: aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.writeMethod:Ljava/lang/reflect/Method;
ifnull 30
16: aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.readMethod:Ljava/lang/reflect/Method;
ifnonnull 28
17: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 8
start local 8 18: aload 1
invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
dup
astore 12
arraylength
istore 11
iconst_0
istore 10
goto 25
StackMap locals: org.springframework.beans.GenericTypeAwarePropertyDescriptor java.lang.Class java.lang.String java.lang.reflect.Method java.lang.reflect.Method java.lang.Class java.lang.reflect.Method java.lang.reflect.Method java.util.Set top int int java.lang.reflect.Method[]
StackMap stack:
19: aload 12
iload 10
aaload
astore 9
start local 9 20: aload 9
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
aload 7
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 24
21: aload 9
aload 7
invokevirtual java.lang.reflect.Method.equals:(Ljava/lang/Object;)Z
ifne 24
aload 9
invokevirtual java.lang.reflect.Method.isBridge:()Z
ifne 24
22: aload 9
invokevirtual java.lang.reflect.Method.getParameterCount:()I
aload 7
invokevirtual java.lang.reflect.Method.getParameterCount:()I
if_icmpne 24
23: aload 8
aload 9
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 9 24: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
25: iload 10
iload 11
if_icmplt 19
26: aload 8
invokeinterface java.util.Set.isEmpty:()Z
ifne 28
27: aload 0
aload 8
putfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.ambiguousWriteMethods:Ljava/util/Set;
end local 8 28: StackMap locals: org.springframework.beans.GenericTypeAwarePropertyDescriptor java.lang.Class java.lang.String java.lang.reflect.Method java.lang.reflect.Method java.lang.Class java.lang.reflect.Method java.lang.reflect.Method
StackMap stack:
aload 0
new org.springframework.core.MethodParameter
dup
aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.writeMethod:Ljava/lang/reflect/Method;
iconst_0
invokespecial org.springframework.core.MethodParameter.<init>:(Ljava/lang/reflect/Method;I)V
putfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.writeMethodParameter:Lorg/springframework/core/MethodParameter;
29: aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.writeMethodParameter:Lorg/springframework/core/MethodParameter;
aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.beanClass:Ljava/lang/Class;
invokestatic org.springframework.core.GenericTypeResolver.resolveParameterType:(Lorg/springframework/core/MethodParameter;Ljava/lang/Class;)Ljava/lang/Class;
pop
30: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.readMethod:Ljava/lang/reflect/Method;
ifnull 33
31: aload 0
aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.readMethod:Ljava/lang/reflect/Method;
aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.beanClass:Ljava/lang/Class;
invokestatic org.springframework.core.GenericTypeResolver.resolveReturnType:(Ljava/lang/reflect/Method;Ljava/lang/Class;)Ljava/lang/Class;
putfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.propertyType:Ljava/lang/Class;
32: goto 35
33: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.writeMethodParameter:Lorg/springframework/core/MethodParameter;
ifnull 35
34: aload 0
aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.writeMethodParameter:Lorg/springframework/core/MethodParameter;
invokevirtual org.springframework.core.MethodParameter.getParameterType:()Ljava/lang/Class;
putfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.propertyType:Ljava/lang/Class;
35: StackMap locals:
StackMap stack:
aload 0
aload 5
putfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.propertyEditorClass:Ljava/lang/Class;
36: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lorg/springframework/beans/GenericTypeAwarePropertyDescriptor;
0 37 1 beanClass Ljava/lang/Class<*>;
0 37 2 propertyName Ljava/lang/String;
0 37 3 readMethod Ljava/lang/reflect/Method;
0 37 4 writeMethod Ljava/lang/reflect/Method;
0 37 5 propertyEditorClass Ljava/lang/Class<*>;
5 37 6 readMethodToUse Ljava/lang/reflect/Method;
8 37 7 writeMethodToUse Ljava/lang/reflect/Method;
11 13 8 candidate Ljava/lang/reflect/Method;
18 28 8 ambiguousCandidates Ljava/util/Set<Ljava/lang/reflect/Method;>;
20 24 9 method Ljava/lang/reflect/Method;
Exceptions:
throws java.beans.IntrospectionException
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/Class<*>;)V
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
3:
org.springframework.lang.Nullable()
4:
MethodParameters:
Name Flags
beanClass
propertyName
readMethod
writeMethod
propertyEditorClass
public java.lang.Class<?> getBeanClass();
descriptor: ()Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.beanClass:Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/beans/GenericTypeAwarePropertyDescriptor;
Signature: ()Ljava/lang/Class<*>;
public java.lang.reflect.Method getReadMethod();
descriptor: ()Ljava/lang/reflect/Method;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.readMethod:Ljava/lang/reflect/Method;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/beans/GenericTypeAwarePropertyDescriptor;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public java.lang.reflect.Method getWriteMethod();
descriptor: ()Ljava/lang/reflect/Method;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.writeMethod:Ljava/lang/reflect/Method;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/beans/GenericTypeAwarePropertyDescriptor;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public java.lang.reflect.Method getWriteMethodForActualAccess();
descriptor: ()Ljava/lang/reflect/Method;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.writeMethod:Ljava/lang/reflect/Method;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "No write method available"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
3: aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.ambiguousWriteMethods:Ljava/util/Set;
astore 1
start local 1 4: aload 1
ifnull 10
5: aload 0
aconst_null
putfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.ambiguousWriteMethods:Ljava/util/Set;
6: ldc Lorg/springframework/beans/GenericTypeAwarePropertyDescriptor;
invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Invalid JavaBean property '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: aload 0
invokevirtual org.springframework.beans.GenericTypeAwarePropertyDescriptor.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' being accessed! Ambiguous write methods found next to actually used ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.writeMethod:Ljava/lang/reflect/Method;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;)V
10: StackMap locals: java.util.Set
StackMap stack:
aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.writeMethod:Ljava/lang/reflect/Method;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/springframework/beans/GenericTypeAwarePropertyDescriptor;
4 11 1 ambiguousCandidates Ljava/util/Set<Ljava/lang/reflect/Method;>;
public org.springframework.core.MethodParameter getWriteMethodParameter();
descriptor: ()Lorg/springframework/core/MethodParameter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.writeMethodParameter:Lorg/springframework/core/MethodParameter;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "No write method available"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
3: aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.writeMethodParameter:Lorg/springframework/core/MethodParameter;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/beans/GenericTypeAwarePropertyDescriptor;
public java.lang.Class<?> getPropertyType();
descriptor: ()Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.propertyType:Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/beans/GenericTypeAwarePropertyDescriptor;
Signature: ()Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public java.lang.Class<?> getPropertyEditorClass();
descriptor: ()Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.beans.GenericTypeAwarePropertyDescriptor.propertyEditorClass:Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/beans/GenericTypeAwarePropertyDescriptor;
Signature: ()Ljava/lang/Class<*>;
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof org.springframework.beans.GenericTypeAwarePropertyDescriptor
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
checkcast org.springframework.beans.GenericTypeAwarePropertyDescriptor
astore 2
start local 2 5: aload 0
invokevirtual org.springframework.beans.GenericTypeAwarePropertyDescriptor.getBeanClass:()Ljava/lang/Class;
aload 2
invokevirtual org.springframework.beans.GenericTypeAwarePropertyDescriptor.getBeanClass:()Ljava/lang/Class;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 6
aload 0
aload 2
invokestatic org.springframework.beans.PropertyDescriptorUtils.equals:(Ljava/beans/PropertyDescriptor;Ljava/beans/PropertyDescriptor;)Z
ifeq 6
iconst_1
ireturn
StackMap locals: org.springframework.beans.GenericTypeAwarePropertyDescriptor
StackMap stack:
6: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/beans/GenericTypeAwarePropertyDescriptor;
0 7 1 other Ljava/lang/Object;
5 7 2 otherPd Lorg/springframework/beans/GenericTypeAwarePropertyDescriptor;
MethodParameters:
Name Flags
other
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.beans.GenericTypeAwarePropertyDescriptor.getBeanClass:()Ljava/lang/Class;
invokevirtual java.lang.Object.hashCode:()I
istore 1
start local 1 1: bipush 29
iload 1
imul
aload 0
invokevirtual org.springframework.beans.GenericTypeAwarePropertyDescriptor.getReadMethod:()Ljava/lang/reflect/Method;
invokestatic org.springframework.util.ObjectUtils.nullSafeHashCode:(Ljava/lang/Object;)I
iadd
istore 1
2: bipush 29
iload 1
imul
aload 0
invokevirtual org.springframework.beans.GenericTypeAwarePropertyDescriptor.getWriteMethod:()Ljava/lang/reflect/Method;
invokestatic org.springframework.util.ObjectUtils.nullSafeHashCode:(Ljava/lang/Object;)I
iadd
istore 1
3: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/beans/GenericTypeAwarePropertyDescriptor;
1 4 1 hashCode I
}
SourceFile: "GenericTypeAwarePropertyDescriptor.java"