class org.springframework.beans.PropertyMatches$BeanPropertyMatches extends org.springframework.beans.PropertyMatches
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.beans.PropertyMatches$BeanPropertyMatches
super_class: org.springframework.beans.PropertyMatches
{
public void <init>(java.lang.String, java.lang.Class<?>, );
descriptor: (Ljava/lang/String;Ljava/lang/Class;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
1: aload 1
aload 2
invokestatic org.springframework.beans.BeanUtils.getPropertyDescriptors:(Ljava/lang/Class;)[Ljava/beans/PropertyDescriptor;
iload 3
invokestatic org.springframework.beans.PropertyMatches$BeanPropertyMatches.calculateMatches:(Ljava/lang/String;[Ljava/beans/PropertyDescriptor;I)[Ljava/lang/String;
invokespecial org.springframework.beans.PropertyMatches.<init>:(Ljava/lang/String;[Ljava/lang/String;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/beans/PropertyMatches$BeanPropertyMatches;
0 3 1 propertyName Ljava/lang/String;
0 3 2 beanClass Ljava/lang/Class<*>;
0 3 3 maxDistance I
Signature: (Ljava/lang/String;Ljava/lang/Class<*>;I)V
MethodParameters:
Name Flags
propertyName
beanClass
maxDistance
private static java.lang.String[] calculateMatches(java.lang.String, java.beans.PropertyDescriptor[], int);
descriptor: (Ljava/lang/String;[Ljava/beans/PropertyDescriptor;I)[Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=9, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: aload 1
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 8
StackMap locals: java.lang.String java.beans.PropertyDescriptor[] int java.util.List top int int java.beans.PropertyDescriptor[]
StackMap stack:
2: aload 7
iload 5
aaload
astore 4
start local 4 3: aload 4
invokevirtual java.beans.PropertyDescriptor.getWriteMethod:()Ljava/lang/reflect/Method;
ifnull 7
4: aload 4
invokevirtual java.beans.PropertyDescriptor.getName:()Ljava/lang/String;
astore 8
start local 8 5: aload 0
aload 8
invokestatic org.springframework.beans.PropertyMatches.calculateStringDistance:(Ljava/lang/String;Ljava/lang/String;)I
iload 2
if_icmpgt 7
6: aload 3
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 end local 4 7: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
8: iload 5
iload 6
if_icmplt 2
9: aload 3
invokestatic java.util.Collections.sort:(Ljava/util/List;)V
10: aload 3
invokestatic org.springframework.util.StringUtils.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 name Ljava/lang/String;
0 11 1 descriptors [Ljava/beans/PropertyDescriptor;
0 11 2 maxDistance I
1 11 3 candidates Ljava/util/List<Ljava/lang/String;>;
3 7 4 pd Ljava/beans/PropertyDescriptor;
5 7 8 possibleAlternative Ljava/lang/String;
MethodParameters:
Name Flags
name
descriptors
maxDistance
public java.lang.String buildErrorMessage();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
sipush 160
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 1
start local 1 1: aload 1
ldc "Bean property '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.springframework.beans.PropertyMatches$BeanPropertyMatches.getPropertyName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: ldc "' is not writable or has an invalid setter method. "
3: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: aload 0
invokevirtual org.springframework.beans.PropertyMatches$BeanPropertyMatches.getPossibleMatches:()[Ljava/lang/String;
invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
ifne 7
5: aload 0
aload 1
invokevirtual org.springframework.beans.PropertyMatches$BeanPropertyMatches.appendHintMessage:(Ljava/lang/StringBuilder;)V
6: goto 8
7: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 1
ldc "Does the parameter type of the setter match the return type of the getter?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/beans/PropertyMatches$BeanPropertyMatches;
1 9 1 msg Ljava/lang/StringBuilder;
}
SourceFile: "PropertyMatches.java"
NestHost: org.springframework.beans.PropertyMatches
InnerClasses:
private BeanPropertyMatches = org.springframework.beans.PropertyMatches$BeanPropertyMatches of org.springframework.beans.PropertyMatches