public class ReflectionDiffBuilder extends Object implements Builder<DiffResult>
Assists in implementing Diffable.diff(Object) methods.
All non-static, non-transient fields (including inherited fields) of the objects to diff are discovered using reflection and compared for differences.
To use this class, write code as follows:
public class Person implements Diffable<Person> {
String name;
int age;
boolean smoker;
...
public DiffResult diff(Person obj) {
// No need for null check, as NullPointerException correct if obj is null
return new ReflectionDiffBuilder(this, obj, ToStringStyle.SHORT_PREFIX_STYLE)
.build();
}
}
The ToStringStyle passed to the constructor is embedded in the
returned DiffResult and influences the style of the
DiffResult.toString() method. This style choice can be overridden by
calling DiffResult.toString(ToStringStyle).
| Constructor and Description |
|---|
ReflectionDiffBuilder(T lhs,
T rhs,
ToStringStyle style)
Constructs a builder for the specified objects with the specified style.
|
public ReflectionDiffBuilder(T lhs,
T rhs,
ToStringStyle style)
Constructs a builder for the specified objects with the specified style.
If lhs == rhs or lhs.equals(rhs) then the builder will
not evaluate any calls to append(...) and will return an empty
DiffResult when build() is executed.
T - type of the objects to difflhs - this objectrhs - the object to diff againststyle - the style will use when outputting the objects, null
uses the defaultIllegalArgumentException - if lhs or rhs is nullpublic DiffResult build()
Builderbuild in interface Builder<DiffResult>Copyright © 2019. All rights reserved.