Reputation: 59
From 1.4.0 release, "PropertyChange is now decoupled from Property, reference from propertyChange to concrete property is replaced with propertyName String field."
What's the alternative way to access Property after 1.4.0 changes ? As I would like to access "looksLikeId" in Property
Upvotes: 0
Views: 187
Reputation: 3496
You can do it with the following snippet:
ManagedType managedType = (ManagedType)javers.getTypeMapping(Person.class);
Property property = managedType.getProperty(propertyChange.getPropertyName());
Full example (groovy):
def "should extract Property from PropertyChange"(){
given:
def javers = JaversTestBuilder.newInstance()
when:
def diff = javers.compare(new Person('1','bob'), new Person('1','bobby'))
PropertyChange propertyChange = diff.changes[0]
ManagedType managedType = (ManagedType)javers.getTypeMapping(Person)
Property property = managedType.getProperty(propertyChange.propertyName)
then:
property.name == 'name'
!property.looksLikeId()
}
In version 1.4.1, I will add convenience getProperty()
method to javers:
Property property = javers.getProperty( propertyChange )
Upvotes: 2