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 // org.springframework.beans.PropertyMatches$BeanPropertyMatches this
        start local 1 // java.lang.String propertyName
        start local 2 // java.lang.Class beanClass
        start local 3 // int maxDistance
         0: .line 191
            aload 0 /* this */
            aload 1 /* propertyName */
         1: .line 192
            aload 1 /* propertyName */
            aload 2 /* beanClass */
            invokestatic org.springframework.beans.BeanUtils.getPropertyDescriptors:(Ljava/lang/Class;)[Ljava/beans/PropertyDescriptor;
            iload 3 /* maxDistance */
            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: .line 193
            return
        end local 3 // int maxDistance
        end local 2 // java.lang.Class beanClass
        end local 1 // java.lang.String propertyName
        end local 0 // org.springframework.beans.PropertyMatches$BeanPropertyMatches this
      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 // java.lang.String name
        start local 1 // java.beans.PropertyDescriptor[] descriptors
        start local 2 // int maxDistance
         0: .line 203
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* candidates */
        start local 3 // java.util.List candidates
         1: .line 204
            aload 1 /* descriptors */
            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 /* pd */
        start local 4 // java.beans.PropertyDescriptor pd
         3: .line 205
            aload 4 /* pd */
            invokevirtual java.beans.PropertyDescriptor.getWriteMethod:()Ljava/lang/reflect/Method;
            ifnull 7
         4: .line 206
            aload 4 /* pd */
            invokevirtual java.beans.PropertyDescriptor.getName:()Ljava/lang/String;
            astore 8 /* possibleAlternative */
        start local 8 // java.lang.String possibleAlternative
         5: .line 207
            aload 0 /* name */
            aload 8 /* possibleAlternative */
            invokestatic org.springframework.beans.PropertyMatches.calculateStringDistance:(Ljava/lang/String;Ljava/lang/String;)I
            iload 2 /* maxDistance */
            if_icmpgt 7
         6: .line 208
            aload 3 /* candidates */
            aload 8 /* possibleAlternative */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.lang.String possibleAlternative
        end local 4 // java.beans.PropertyDescriptor pd
         7: .line 204
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
         8: iload 5
            iload 6
            if_icmplt 2
         9: .line 212
            aload 3 /* candidates */
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
        10: .line 213
            aload 3 /* candidates */
            invokestatic org.springframework.util.StringUtils.toStringArray:(Ljava/util/Collection;)[Ljava/lang/String;
            areturn
        end local 3 // java.util.List candidates
        end local 2 // int maxDistance
        end local 1 // java.beans.PropertyDescriptor[] descriptors
        end local 0 // java.lang.String name
      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 // org.springframework.beans.PropertyMatches$BeanPropertyMatches this
         0: .line 218
            new java.lang.StringBuilder
            dup
            sipush 160
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* msg */
        start local 1 // java.lang.StringBuilder msg
         1: .line 219
            aload 1 /* msg */
            ldc "Bean property '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.springframework.beans.PropertyMatches$BeanPropertyMatches.getPropertyName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 220
            ldc "' is not writable or has an invalid setter method. "
         3: .line 219
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 221
            aload 0 /* this */
            invokevirtual org.springframework.beans.PropertyMatches$BeanPropertyMatches.getPossibleMatches:()[Ljava/lang/String;
            invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
            ifne 7
         5: .line 222
            aload 0 /* this */
            aload 1 /* msg */
            invokevirtual org.springframework.beans.PropertyMatches$BeanPropertyMatches.appendHintMessage:(Ljava/lang/StringBuilder;)V
         6: .line 223
            goto 8
         7: .line 225
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* msg */
            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: .line 227
      StackMap locals:
      StackMap stack:
            aload 1 /* msg */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder msg
        end local 0 // org.springframework.beans.PropertyMatches$BeanPropertyMatches this
      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