public class DiffBuilder extends Object implements Builder<DiffResult>
Assists in implementing Diffable.diff(Object)
methods.
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 DiffBuilder(this, obj, ToStringStyle.SHORT_PREFIX_STYLE) .append("name", this.name, obj.name) .append("age", this.age, obj.age) .append("smoker", this.smoker, obj.smoker) .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 |
---|
DiffBuilder(Object lhs,
Object rhs,
ToStringStyle style)
Constructs a builder for the specified objects with the specified style.
|
Modifier and Type | Method and Description |
---|---|
DiffBuilder |
append(String fieldName,
boolean[] lhs,
boolean[] rhs)
Test if two
boolean[] s are equal. |
DiffBuilder |
append(String fieldName,
boolean lhs,
boolean rhs)
Test if two
boolean s are equal. |
DiffBuilder |
append(String fieldName,
byte[] lhs,
byte[] rhs)
Test if two
byte[] s are equal. |
DiffBuilder |
append(String fieldName,
byte lhs,
byte rhs)
Test if two
byte s are equal. |
DiffBuilder |
append(String fieldName,
char[] lhs,
char[] rhs)
Test if two
char[] s are equal. |
DiffBuilder |
append(String fieldName,
char lhs,
char rhs)
Test if two
char s are equal. |
DiffBuilder |
append(String fieldName,
double[] lhs,
double[] rhs)
Test if two
double[] s are equal. |
DiffBuilder |
append(String fieldName,
double lhs,
double rhs)
Test if two
double s are equal. |
DiffBuilder |
append(String fieldName,
float[] lhs,
float[] rhs)
Test if two
float[] s are equal. |
DiffBuilder |
append(String fieldName,
float lhs,
float rhs)
Test if two
float s are equal. |
DiffBuilder |
append(String fieldName,
int[] lhs,
int[] rhs)
Test if two
int[] s are equal. |
DiffBuilder |
append(String fieldName,
int lhs,
int rhs)
Test if two
int s are equal. |
DiffBuilder |
append(String fieldName,
long[] lhs,
long[] rhs)
Test if two
long[] s are equal. |
DiffBuilder |
append(String fieldName,
long lhs,
long rhs)
Test if two
long s are equal. |
DiffBuilder |
append(String fieldName,
Object[] lhs,
Object[] rhs)
Test if two
Object[] s are equal. |
DiffBuilder |
append(String fieldName,
Object lhs,
Object rhs)
Test if two
Objects s are equal. |
DiffBuilder |
append(String fieldName,
short[] lhs,
short[] rhs)
Test if two
short[] s are equal. |
DiffBuilder |
append(String fieldName,
short lhs,
short rhs)
Test if two
short s are equal. |
DiffResult |
build()
Builds a
DiffResult based on the differences appended to this
builder. |
public DiffBuilder(Object lhs, Object 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.
lhs
- this
objectrhs
- the object to diff againststyle
- the style will use when outputting the objects, null
uses the defaultIllegalArgumentException
- if lhs
or rhs
is null
public DiffBuilder append(String fieldName, boolean lhs, boolean rhs)
Test if two boolean
s are equal.
fieldName
- the field namelhs
- the left hand boolean
rhs
- the right hand boolean
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, boolean[] lhs, boolean[] rhs)
Test if two boolean[]
s are equal.
fieldName
- the field namelhs
- the left hand boolean[]
rhs
- the right hand boolean[]
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, byte lhs, byte rhs)
Test if two byte
s are equal.
fieldName
- the field namelhs
- the left hand byte
rhs
- the right hand byte
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, byte[] lhs, byte[] rhs)
Test if two byte[]
s are equal.
fieldName
- the field namelhs
- the left hand byte[]
rhs
- the right hand byte[]
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, char lhs, char rhs)
Test if two char
s are equal.
fieldName
- the field namelhs
- the left hand char
rhs
- the right hand char
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, char[] lhs, char[] rhs)
Test if two char[]
s are equal.
fieldName
- the field namelhs
- the left hand char[]
rhs
- the right hand char[]
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, double lhs, double rhs)
Test if two double
s are equal.
fieldName
- the field namelhs
- the left hand double
rhs
- the right hand double
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, double[] lhs, double[] rhs)
Test if two double[]
s are equal.
fieldName
- the field namelhs
- the left hand double[]
rhs
- the right hand double[]
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, float lhs, float rhs)
Test if two float
s are equal.
fieldName
- the field namelhs
- the left hand float
rhs
- the right hand float
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, float[] lhs, float[] rhs)
Test if two float[]
s are equal.
fieldName
- the field namelhs
- the left hand float[]
rhs
- the right hand float[]
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, int lhs, int rhs)
Test if two int
s are equal.
fieldName
- the field namelhs
- the left hand int
rhs
- the right hand int
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, int[] lhs, int[] rhs)
Test if two int[]
s are equal.
fieldName
- the field namelhs
- the left hand int[]
rhs
- the right hand int[]
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, long lhs, long rhs)
Test if two long
s are equal.
fieldName
- the field namelhs
- the left hand long
rhs
- the right hand long
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, long[] lhs, long[] rhs)
Test if two long[]
s are equal.
fieldName
- the field namelhs
- the left hand long[]
rhs
- the right hand long[]
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, short lhs, short rhs)
Test if two short
s are equal.
fieldName
- the field namelhs
- the left hand short
rhs
- the right hand short
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, short[] lhs, short[] rhs)
Test if two short[]
s are equal.
fieldName
- the field namelhs
- the left hand short[]
rhs
- the right hand short[]
IllegalArgumentException
- if field name is null
public DiffBuilder append(String fieldName, Object lhs, Object rhs)
Test if two Objects
s are equal.
fieldName
- the field namelhs
- the left hand Object
rhs
- the right hand Object
public DiffBuilder append(String fieldName, Object[] lhs, Object[] rhs)
Test if two Object[]
s are equal.
fieldName
- the field namelhs
- the left hand Object[]
rhs
- the right hand Object[]
public DiffResult build()
Builds a DiffResult
based on the differences appended to this
builder.
build
in interface Builder<DiffResult>
DiffResult
containing the differences between the two
objects.Copyright © 2001–2014 The Apache Software Foundation. All rights reserved.