# 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:
  `Iterable<Diff<?>>`

public class DiffResult<T> extends Object implements Iterable<Diff<?>>
A `DiffResult` contains a collection of the differences between two `Diffable` objects. Typically these differences are displayed using `toString()` method, which returns a string describing the fields that differ between the objects.

Use a `DiffBuilder` to build a `DiffResult` comparing two objects.

Since:
  3.3

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `OBJECTS_SAME_STRING`
  The `String` returned when the objects have no differences: ""

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<Diff<?>>`
  `getDiffs()`
  Gets an unmodifiable list of `Diff`s.
  `T`
  `getLeft()`
  Gets the object the right object has been compared to.
  `int`
  `getNumberOfDiffs()`
  Gets the number of differences between the two objects.
  `T`
  `getRight()`
  Gets the object the left object has been compared to.
  `ToStringStyle`
  `getToStringStyle()`
  Gets the style used by the `toString()` method.
  `Iterator<Diff<?>>`
  `iterator()`
  Returns an iterator over the `Diff` objects contained in this list.
  `String`
  `toString()`
  Builds a `String` description of the differences contained within this `DiffResult`.
  `String`
  `toString(ToStringStyle style)`
  Builds a `String` description of the differences contained within this `DiffResult`, using the supplied `ToStringStyle`.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface Iterable

  `forEach, spliterator`

- ## Field Details

  - ### OBJECTS_SAME_STRING

    public static final String OBJECTS_SAME_STRING
    The `String` returned when the objects have no differences: ""
    See Also:
      - Constant Field Values

- ## Method Details

  - ### getDiffs

    public List<Diff<?>> getDiffs()
    Gets an unmodifiable list of `Diff`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()
    Gets the object the right object has been compared to.
    Returns:
      the left object of the diff
    Since:
      3.10

  - ### getNumberOfDiffs

    public int getNumberOfDiffs()
    Gets the number of differences between the two objects.
    Returns:
      the number of differences

  - ### getRight

    public T getRight()
    Gets the object the left object has been compared to.
    Returns:
      the right object of the diff
    Since:
      3.10

  - ### getToStringStyle

    public ToStringStyle getToStringStyle()
    Gets the style used by the `toString()` method.
    Returns:
      the style

  - ### iterator

    public Iterator<Diff<?>> iterator()
    Returns an iterator over the `Diff` objects contained in this list.
    Specified by:
      `iterator` in interface `Iterable<T>`
    Returns:
      the iterator

  - ### toString

    public String toString()
    Builds a `String` description of the differences contained within this `DiffResult`. A `ToStringBuilder` is used for each object and the style of the output is governed by the `ToStringStyle` 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 in `Diffable` and `ToStringStyle.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, use `toString(ToStringStyle)`.

    Overrides:
      `toString` in class `Object`
    Returns:
      a `String` description of the differences.

  - ### toString

    public String toString(ToStringStyle style)
    Builds a `String` description of the differences contained within this `DiffResult`, using the supplied `ToStringStyle`.
    Parameters:
      `style` - the `ToStringStyle` to use when outputting the objects
    Returns:
      a `String` description of the differences.