package org.egov.ptis.builder.entity.property;
import org.egov.ptis.builder.entity.master.PropertyTypeMasterBuilder;
import org.egov.ptis.domain.entity.property.BuiltUpProperty;
import org.egov.ptis.domain.entity.property.Floor;
import org.egov.ptis.domain.entity.property.PropertyDetail;
import org.egov.ptis.domain.entity.property.PropertyTypeMaster;
import org.egov.ptis.domain.entity.property.VacantProperty;
import java.util.ArrayList;
import java.util.List;
/**
* @author Ramki
*/
public class PropertyDetailBuilder {
private final PropertyDetail propertyDetail;
public PropertyDetailBuilder(String type) {
if (type == "Builtup") {
propertyDetail = new BuiltUpProperty();
} else {
propertyDetail = new VacantProperty();
}
}
public PropertyDetail build() {
return propertyDetail;
}
public PropertyDetailBuilder withPropertyType(final PropertyTypeMaster propertyTypeMaster) {
propertyDetail.setPropertyTypeMaster(propertyTypeMaster);
return this;
}
public PropertyDetailBuilder withFloorDetails(final List<Floor> floorDetails) {
propertyDetail.setFloorDetails(floorDetails);
return this;
}
public PropertyDetailBuilder withDefaults() {
List<Floor> floorSet = new ArrayList<Floor>();
Floor floor = new FloorBuilder().withDefaults().build();
floorSet.add(floor);
propertyDetail.setPropertyTypeMaster(new PropertyTypeMasterBuilder().withType("Residential").build());
propertyDetail.setFloorDetails(floorSet);
return this;
}
}