package org.openlmis.core.model.builder;
import org.openlmis.core.model.Product;
import org.openlmis.core.model.Program;
public class ProductBuilder {
private Product product;
public ProductBuilder() {
product = new Product();
product.setActive(true);
}
public static ProductBuilder create() {
return new ProductBuilder();
}
public ProductBuilder setPrimaryName(String primaryName) {
product.setPrimaryName(primaryName);
return this;
}
public ProductBuilder setStrength(String strength) {
product.setStrength(strength);
return this;
}
public ProductBuilder setCode(String code) {
product.setCode(code);
return this;
}
public ProductBuilder setType(String type) {
product.setType(type);
return this;
}
public ProductBuilder setIsArchived(boolean isArchived) {
product.setArchived(isArchived);
return this;
}
public Product build() {
return product;
}
public static Product buildAdultProduct() {
return new ProductBuilder().setType(Product.MEDICINE_TYPE_ADULT)
.setCode("productCode")
.setStrength("serious")
.setPrimaryName("Primary product name")
.build();
}
public ProductBuilder setProductId(long productId) {
product.setId(productId);
return this;
}
public ProductBuilder setIsActive(boolean active) {
product.setActive(active);
return this;
}
public ProductBuilder setIsKit(boolean isKit) {
product.setKit(isKit);
return this;
}
}