Package org.apache.commons.lang3.builder
Class ReflectionDiffBuilder<T>
java.lang.Object
org.apache.commons.lang3.builder.ReflectionDiffBuilder<T>
- Type Parameters:
T- type of the left and right object to diff.
- All Implemented Interfaces:
Builder<DiffResult<T>>
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).
- Since:
- 3.6
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final DiffBuilder<T>private final Objectprivate final Object -
Constructor Summary
ConstructorsConstructorDescriptionReflectionDiffBuilder(T lhs, T rhs, ToStringStyle style) Constructs a builder for the specified objects with the specified style. -
Method Summary
Modifier and TypeMethodDescriptionprivate booleanprivate voidappendFields(Class<?> clazz) build()Returns a reference to the object being constructed or result being calculated by the builder.
-
Field Details
-
left
-
right
-
diffBuilder
-
-
Constructor Details
-
ReflectionDiffBuilder
Constructs a builder for the specified objects with the specified style.
If
lhs == rhsorlhs.equals(rhs)then the builder will not evaluate any calls toappend(...)and will return an emptyDiffResultwhenbuild()is executed.- Parameters:
lhs-thisobjectrhs- the object to diff againststyle- the style will use when outputting the objects,nulluses the default- Throws:
IllegalArgumentException- iflhsorrhsisnull
-
-
Method Details