Package org.apache.commons.lang3.builder
Class DiffResult<T>
- java.lang.Object
-
- org.apache.commons.lang3.builder.DiffResult<T>
-
- Type Parameters:
T
- type of the left and right object.
- All Implemented Interfaces:
java.lang.Iterable<Diff<?>>
public class DiffResult<T> extends java.lang.Object implements java.lang.Iterable<Diff<?>>
ADiffResult
contains a collection of the differences between twoDiffable
objects. Typically these differences are displayed usingtoString()
method, which returns a string describing the fields that differ between the objects.Use a
DiffBuilder
to build aDiffResult
comparing two objects.- Since:
- 3.3
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
DIFFERS_STRING
private java.util.List<Diff<?>>
diffList
private T
lhs
static java.lang.String
OBJECTS_SAME_STRING
TheString
returned when the objects have no differences: ""private T
rhs
private ToStringStyle
style
-
Constructor Summary
Constructors Constructor Description DiffResult(T lhs, T rhs, java.util.List<Diff<?>> diffList, ToStringStyle style)
Creates aDiffResult
containing the differences between two objects.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<Diff<?>>
getDiffs()
Returns an unmodifiable list ofDiff
s.T
getLeft()
Returns the object the right object has been compared to.int
getNumberOfDiffs()
Returns the number of differences between the two objects.T
getRight()
Returns the object the left object has been compared to.ToStringStyle
getToStringStyle()
Returns the style used by thetoString()
method.java.util.Iterator<Diff<?>>
iterator()
Returns an iterator over theDiff
objects contained in this list.java.lang.String
toString()
Builds aString
description of the differences contained within thisDiffResult
.java.lang.String
toString(ToStringStyle style)
Builds aString
description of the differences contained within thisDiffResult
, using the suppliedToStringStyle
.
-
-
-
Field Detail
-
OBJECTS_SAME_STRING
public static final java.lang.String OBJECTS_SAME_STRING
TheString
returned when the objects have no differences: ""- See Also:
- Constant Field Values
-
DIFFERS_STRING
private static final java.lang.String DIFFERS_STRING
- See Also:
- Constant Field Values
-
diffList
private final java.util.List<Diff<?>> diffList
-
lhs
private final T lhs
-
rhs
private final T rhs
-
style
private final ToStringStyle style
-
-
Constructor Detail
-
DiffResult
DiffResult(T lhs, T rhs, java.util.List<Diff<?>> diffList, ToStringStyle style)
Creates aDiffResult
containing the differences between two objects.- Parameters:
lhs
- the left-hand objectrhs
- the right-hand objectdiffList
- the list of differences, may be emptystyle
- the style to use for thetoString()
method. May benull
, in which caseToStringStyle.DEFAULT_STYLE
is used- Throws:
java.lang.NullPointerException
- iflhs
,rhs
ordiffs
isnull
-
-
Method Detail
-
getDiffs
public java.util.List<Diff<?>> getDiffs()
Returns an unmodifiable list ofDiff
s. The list may be empty if there were no differences between the objects.- Returns:
- an unmodifiable list of
Diff
s
-
getLeft
public T getLeft()
Returns the object the right object has been compared to.- Returns:
- the left object of the diff
- Since:
- 3.10
-
getNumberOfDiffs
public int getNumberOfDiffs()
Returns the number of differences between the two objects.- Returns:
- the number of differences
-
getRight
public T getRight()
Returns the object the left object has been compared to.- Returns:
- the right object of the diff
- Since:
- 3.10
-
getToStringStyle
public ToStringStyle getToStringStyle()
Returns the style used by thetoString()
method.- Returns:
- the style
-
iterator
public java.util.Iterator<Diff<?>> iterator()
Returns an iterator over theDiff
objects contained in this list.- Specified by:
iterator
in interfacejava.lang.Iterable<T>
- Returns:
- the iterator
-
toString
public java.lang.String toString()
Builds aString
description of the differences contained within thisDiffResult
. AToStringBuilder
is used for each object and the style of the output is governed by theToStringStyle
passed to the constructor.If there are no differences stored in this list, the method will return
OBJECTS_SAME_STRING
. Otherwise, using the example given inDiffable
andToStringStyle.SHORT_PREFIX_STYLE
, an output might be:Person[name=John Doe,age=32] differs from Person[name=Joe Bloggs,age=26]
This indicates that the objects differ in name and age, but not in smoking status.
To use a different
ToStringStyle
for an instance of this class, usetoString(ToStringStyle)
.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a
String
description of the differences.
-
toString
public java.lang.String toString(ToStringStyle style)
Builds aString
description of the differences contained within thisDiffResult
, using the suppliedToStringStyle
.- Parameters:
style
- theToStringStyle
to use when outputting the objects- Returns:
- a
String
description of the differences.
-
-