package com.blogspot.toomuchcoding.book.chapter8._5_OverMocking.model;
import java.util.List;
public class PersonBuilder {
private String name;
private Address address;
private List<Person> siblings;
public PersonBuilder name(String name) {
this.name = name;
return this;
}
public PersonBuilder address(Address address) {
this.address = address;
return this;
}
public PersonBuilder streetNumber(int streetNumber) {
if(this.address == null) {
this.address = AddressBuilder.address().streetNumber(streetNumber).build();
} else {
this.address.setStreetNumber(streetNumber);
}
return this;
}
public PersonBuilder siblings(List<Person> siblings) {
this.siblings = siblings;
return this;
}
public Person build() {
Person person = new Person();
person.setName(name);
person.setAddress(address);
person.setSiblings(siblings);
return person;
}
public static PersonBuilder person() {
return new PersonBuilder();
}
}