anchor.diff:  
   ReturnValueNode(name=<return value>, inIterable=false, index=null, key=null, kind=ElementKind.RETURN_VALUE)
   
  -PropertyNode(name=title,inIterable=true, index=null, key=Author(firstName=John, lastName=Doe), kind=ElementKind.PROPERTY)
  +PropertyNode(name=title,inIterable=true, index=null, key=Author(firstName=John, lastName=Doe), containerClass=Map.class, typeArgumentIndex=1, kind=ElementKind.PROPERTY)
   |[classname]`@OldAndNewPasswordsDifferent`  when
                 executing [methodname]`Author.renewPassword()`  with
                 `oldPassword`, `newPassword`
  
positive.code: 
  ParameterNode(name=arg0, inIterable=false, index=null, key=null, kind=ElementKind.PARAMETER, parameterIndex=0)
  
  PropertyNode(name=title, inIterable=false, index=null, key=null, kind=ElementKind.PROPERTY)
  |[classname]`@NotEmpty`  on fourth book,
                [classname]`Book.title`  during validation of
                [methodname]`addAllBooks()`|MethodNode(name=addAllBooks, inIterable=false, index=null, key=null, kind=ElementKind.METHOD, parameterTypes=[List.class])
  
  ParameterNode(name=arg0, inIterable=false, index=null, key=null, kind=ElementKind.PARAMETER, parameterIndex=0)
  
  PropertyNode(name=title,inIterable=true, index=3, key=null, kind=ElementKind.PROPERTY)
  |[classname]`@NotNull`  on the return value of
                the [methodname]`getLocation()`  method|MethodNode(name=getLocation, inIterable=false, index=null, key=null, kind=ElementKind.METHOD, parameterTypes=[])
  
  
negative.code: |===============
  |Constraint|propertyPath
  |[classname]`@AvailableInStore`  on
              [classname]`Book`|BeanNode(name=null,inIterable=false, index=null, key=null, containerClass=null, typeArgumentIndex=null, kind=ElementKind.BEAN)
  |[classname]`@NotEmpty`  on
              [classname]`Book.title`|PropertyNode(name=title,inIterable=false, index=null, key=null, containerClass=null, typeArgumentIndex=null, kind=ElementKind.PROPERTY)
  |[classname]`@NotNull`  on
              [classname]`Book.authors`|PropertyNode(name=authors,inIterable=false, index=null, key=null, containerClass=null, typeArgumentIndex=null, kind=ElementKind.PROPERTY)
  |[classname]`@SecurityChecking`  on the fourth
              author, [classname]`Author`|PropertyNode(name=authors,inIterable=false, index=null, key=null, containerClass=null, typeArgumentIndex=null, kind=ElementKind.PROPERTY)
  
  BeanNode(name=null,inIterable=true, index=3, key=null, containerClass=List.class, typeArgumentIndex=0, kind=ElementKind.BEAN)
  |[classname]`@Size`  on the fourth author,
              [classname]`Author.lastname`|PropertyNode(name=authors,inIterable=false, index=null, key=null, containerClass=null, typeArgumentIndex=null, kind=ElementKind.PROPERTY)
  
  PropertyNode(name=lastname,inIterable=true, index=4, key=null, containerClass=List.class, typeArgumentIndex=0, kind=ElementKind.PROPERTY)
  |[classname]`@NotEmpty`  on the first author,
              [classname]`Author.company`|PropertyNode(name=authors,inIterable=false, index=null, key=null, containerClass=null, typeArgumentIndex=null, kind=ElementKind.PROPERTY)
  
  PropertyNode(name=company,inIterable=true, index=0, key=null, containerClass=List.class, typeArgumentIndex=0, kind=ElementKind.PROPERTY)
  |[classname]`@Min`  on the review associated to
              Consumer Report, [classname]`Review.rating`|PropertyNode(name=reviewsPerSource,inIterable=false, index=null, key=null, containerClass=null, typeArgumentIndex=null, kind=ElementKind.PROPERTY)
  
  PropertyNode(name=rating,inIterable=true, index=null, key="Consumer Report", containerClass=Map.class, typeArgumentIndex=1, kind=ElementKind.PROPERTY)
  |[classname]`@Min`  on the picked review,
              [classname]`Review.rating`|PropertyNode(name=pickedReview,inIterable=false, index=null, key=null, containerClass=null, typeArgumentIndex=null, kind=ElementKind.PROPERTY)
  
  PropertyNode(name=rating,inIterable=false, index=null, key=null, containerClass=null, typeArgumentIndex=null, kind=ElementKind.PROPERTY)
  |===============
  
  Assuming the constructor and methods of the [classname]`Library` class are subject to method constraint validation, the following property paths would exist for the different constraints:
  