package org.egov.ptis.builder.entity.property;
import org.egov.builder.entities.ModuleBuilder;
import org.egov.commons.Installment;
import org.egov.commons.entity.InstallmentBuilder;
import org.egov.ptis.domain.entity.property.BasicProperty;
import org.egov.ptis.domain.entity.property.PropertyDetail;
import org.egov.ptis.domain.entity.property.PropertyImpl;
/**
* @author Ramki
*/
public class PropertyBuilder {
private final PropertyImpl property;
public PropertyBuilder() {
property = new PropertyImpl();
}
public PropertyImpl build() {
return property;
}
public PropertyBuilder withInstallment(final Installment installment) {
property.setInstallment(installment);
return this;
}
public PropertyBuilder withActiveStatus() {
property.setStatus('A');
return this;
}
public PropertyBuilder withBasicProperty(final BasicProperty basicProperty) {
property.setBasicProperty(basicProperty);
return this;
}
public PropertyBuilder withPropertyDetail(final PropertyDetail propertyDetail) {
property.setPropertyDetail(propertyDetail);
return this;
}
public PropertyBuilder withDefaults() {
property.setStatus('A');
property.setIsDefaultProperty('Y');
property.setInstallment(new InstallmentBuilder().withCurrentHalfPeriod(
new ModuleBuilder().withName("Property Tax").build()).build());
property.setPropertyDetail(new PropertyDetailBuilder("BuiltUp").withDefaults().build());
return this;
}
}