package org.softlang.company.features;
import java.util.LinkedList;
import java.util.List;
import org.softlang.company.model.Company;
public class CompanyBuilder implements UnitBuilder {
private Company company = new Company();
private List<DepartmentBuilder> departments = new LinkedList<DepartmentBuilder>();
public CompanyBuilder company(String name) {
company.setName(name);
return this;
}
public DepartmentBuilder department(String name) {
DepartmentBuilder child = new DepartmentBuilder(this);
departments.add(child);
child.setName(name);
return child;
}
public UnitBuilder endDepartment() {
// Already on top level
return this;
}
@Override
public Company endCompany() {
for(DepartmentBuilder builder : departments){
company.getDepts().add(builder.getContent());
}
return company;
}
}