public class org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher extends org.hamcrest.DiagnosingMatcher<java.lang.Object>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher
  super_class: org.hamcrest.DiagnosingMatcher
{
  private final java.lang.reflect.Method readMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hamcrest.Matcher<java.lang.Object> matcher;
    descriptor: Lorg/hamcrest/Matcher;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/hamcrest/Matcher<Ljava/lang/Object;>;

  private final java.lang.String propertyName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.beans.PropertyDescriptor, java.lang.Object);
    descriptor: (Ljava/beans/PropertyDescriptor;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher this
        start local 1 // java.beans.PropertyDescriptor descriptor
        start local 2 // java.lang.Object expectedObject
         0: .line 92
            aload 0 /* this */
            invokespecial org.hamcrest.DiagnosingMatcher.<init>:()V
         1: .line 93
            aload 0 /* this */
            aload 1 /* descriptor */
            invokevirtual java.beans.PropertyDescriptor.getDisplayName:()Ljava/lang/String;
            putfield org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher.propertyName:Ljava/lang/String;
         2: .line 94
            aload 0 /* this */
            aload 1 /* descriptor */
            invokevirtual java.beans.PropertyDescriptor.getReadMethod:()Ljava/lang/reflect/Method;
            putfield org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher.readMethod:Ljava/lang/reflect/Method;
         3: .line 95
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher.readMethod:Ljava/lang/reflect/Method;
            aload 2 /* expectedObject */
            invokestatic org.hamcrest.beans.SamePropertyValuesAs.readProperty:(Ljava/lang/reflect/Method;Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.hamcrest.core.IsEqual.equalTo:(Ljava/lang/Object;)Lorg/hamcrest/Matcher;
            putfield org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher.matcher:Lorg/hamcrest/Matcher;
         4: .line 96
            return
        end local 2 // java.lang.Object expectedObject
        end local 1 // java.beans.PropertyDescriptor descriptor
        end local 0 // org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/hamcrest/beans/SamePropertyValuesAs$PropertyMatcher;
            0    5     1      descriptor  Ljava/beans/PropertyDescriptor;
            0    5     2  expectedObject  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      descriptor      
      expectedObject  

  public boolean matches(java.lang.Object, org.hamcrest.Description);
    descriptor: (Ljava/lang/Object;Lorg/hamcrest/Description;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher this
        start local 1 // java.lang.Object actual
        start local 2 // org.hamcrest.Description mismatch
         0: .line 100
            aload 0 /* this */
            getfield org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher.readMethod:Ljava/lang/reflect/Method;
            aload 1 /* actual */
            invokestatic org.hamcrest.beans.SamePropertyValuesAs.readProperty:(Ljava/lang/reflect/Method;Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* actualValue */
        start local 3 // java.lang.Object actualValue
         1: .line 101
            aload 0 /* this */
            getfield org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher.matcher:Lorg/hamcrest/Matcher;
            aload 3 /* actualValue */
            invokeinterface org.hamcrest.Matcher.matches:(Ljava/lang/Object;)Z
            ifne 5
         2: .line 102
            aload 2 /* mismatch */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher.propertyName:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.hamcrest.Description.appendText:(Ljava/lang/String;)Lorg/hamcrest/Description;
            pop
         3: .line 103
            aload 0 /* this */
            getfield org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher.matcher:Lorg/hamcrest/Matcher;
            aload 3 /* actualValue */
            aload 2 /* mismatch */
            invokeinterface org.hamcrest.Matcher.describeMismatch:(Ljava/lang/Object;Lorg/hamcrest/Description;)V
         4: .line 104
            iconst_0
            ireturn
         5: .line 106
      StackMap locals: java.lang.Object
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.lang.Object actualValue
        end local 2 // org.hamcrest.Description mismatch
        end local 1 // java.lang.Object actual
        end local 0 // org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/hamcrest/beans/SamePropertyValuesAs$PropertyMatcher;
            0    6     1       actual  Ljava/lang/Object;
            0    6     2     mismatch  Lorg/hamcrest/Description;
            1    6     3  actualValue  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      actual    
      mismatch  

  public void describeTo(org.hamcrest.Description);
    descriptor: (Lorg/hamcrest/Description;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher this
        start local 1 // org.hamcrest.Description description
         0: .line 111
            aload 1 /* description */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher.propertyName:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.hamcrest.Description.appendText:(Ljava/lang/String;)Lorg/hamcrest/Description;
            aload 0 /* this */
            getfield org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher.matcher:Lorg/hamcrest/Matcher;
            invokeinterface org.hamcrest.Description.appendDescriptionOf:(Lorg/hamcrest/SelfDescribing;)Lorg/hamcrest/Description;
            pop
         1: .line 112
            return
        end local 1 // org.hamcrest.Description description
        end local 0 // org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/hamcrest/beans/SamePropertyValuesAs$PropertyMatcher;
            0    2     1  description  Lorg/hamcrest/Description;
    MethodParameters:
             Name  Flags
      description  
}
Signature: Lorg/hamcrest/DiagnosingMatcher<Ljava/lang/Object;>;
SourceFile: "SamePropertyValuesAs.java"
NestHost: org.hamcrest.beans.SamePropertyValuesAs
InnerClasses:
  public PropertyMatcher = org.hamcrest.beans.SamePropertyValuesAs$PropertyMatcher of org.hamcrest.beans.SamePropertyValuesAs