Class 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 Detail

      • 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 Detail

      • getLeft

        public T getLeft()

        Returns the object the right object has been compared to.

        Returns:
        the left object of the diff
        Since:
        3.10
      • getRight

        public T getRight()

        Returns the object the left object has been compared to.

        Returns:
        the right object of the diff
        Since:
        3.10
      • getDiffs

        public List<Diff<?>> getDiffs()

        Returns an unmodifiable list of Diffs. The list may be empty if there were no differences between the objects.

        Returns:
        an unmodifiable list of Diffs
      • getNumberOfDiffs

        public int getNumberOfDiffs()

        Returns the number of differences between the two objects.

        Returns:
        the number of differences
      • getToStringStyle

        public ToStringStyle getToStringStyle()

        Returns the style used by the toString() method.

        Returns:
        the style
      • 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.
      • 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