Giriş
Şu satırı dahil ederiz. DiffBuilder bir DiffResult döner. DiffResult aslında Diff nesneleri listedir.
import org.apache.commons.lang3.builder.Diff;import org.apache.commons.lang3.builder.DiffBuilder;import org.apache.commons.lang3.builder.DiffResult;
Kullanım
- DiffBuilder nesnesini kurarken karşılaştırılacak nesneler verilir.
- append() metodu ile karşılaştırılacak alanlar eklenir.
- build() metodu ile DiffResult alınır
Örnek
Şöyle yaparız
DiffResult<Employee> diff = new DiffBuilder(emp1, emp2, ToStringStyle.SHORT_PREFIX_STYLE)
.append("name", emp1.getName(), emp2.getName())
.append("age", emp1.getAge(), emp2.getAge())
.append("fulltime", emp1.getFulltime(), emp2.getFulltime())
.build();
Örnek
Elimizde şöyle bir kod olsun.
Elimizde şöyle bir kod olsun.
@Data
public class PersonDTO implements Diffable<PersonDTO> {
private String id;
private String firstName;
private String lastName;
private List<AddressDTO> addresses;
@Override
public DiffResult diff(PersonDTO personDTO) {
return new DiffBuilder(this, personDTO, SHORT_PREFIX_STYLE)
.append("id", this.id, personDTO.getId())
.append("firstName", this.firstName, personDTO.getFirstName())
.append("lastName", this.lastName, personDTO.getLastName())
.append("addresses", addresses, personDTO.getAddresses())
.build();
}
}
Şöyle yaparızPersonDTO person1 = ...
PersonDTO person2 = ...
DiffResult diff = person1.diff(person2);
for(Diff<?> d: diff.getDiffs()) {
System.out.println(d.getFieldName()
+ "= FROM[" + d.getLeft() + "] TO [" + d.getRight() + "]");
}