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).
Diffable,
Diff,
DiffResult,
ToStringStyle| Constructor and Description |
|---|
ReflectionDiffBuilder(T lhs,
T rhs,
ToStringStyle style)
Constructs a builder for the specified objects with the specified style.
|
| Modifier and Type | Method and Description |
|---|---|
DiffResult |
build()
Returns a reference to the object being constructed or result being
calculated by the builder.
|
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 © 2001–2018 The Apache Software Foundation. All rights reserved.