in bigtop-data-generators/bigpetstore-data-generator/src/main/java/org/apache/bigtop/datagenerators/bigpetstore/generators/products/collections/MediumProductCollection.java [33:122]
private ProductCategory createDogFood()
{
ProductCategoryBuilder builder = new ProductCategoryBuilder();
builder.addApplicableSpecies(PetSpecies.DOG);
builder.setCategory("dry dog food");
builder.setTriggerTransaction(true);
builder.setDailyUsageRate(2.0);
builder.setAmountUsedPetPetAverage(0.25);
builder.setAmountUsedPetPetVariance(0.1);
builder.setTriggerTransactionRate(2.0);
builder.setTriggerPurchaseRate(7.0);
builder.setBasePrice(2.0);
builder.addPropertyValues("brand",
new ProductFieldValue("Wellfed", 0.67, 1.0),
new ProductFieldValue("Happy Pup", 0.67, 1.0),
new ProductFieldValue("Dog Days", 1.0, 1.0),
new ProductFieldValue("Chef Corgi", 0.0, 1.0));
builder.addPropertyValues("meat",
new ProductFieldValue("Chicken", 0.0, 1.0),
new ProductFieldValue("Pork", 0.0, 1.0),
new ProductFieldValue("Lamb", 0.1, 1.0),
new ProductFieldValue("Salmon", 0.25, 1.0),
new ProductFieldValue("Venison", 0.5, 1.0),
new ProductFieldValue("Rabbit", 0.5, 1.0),
new ProductFieldValue("Vegetarian", 0.0, 1.0));
builder.addPropertyValues("grain",
new ProductFieldValue("Corn", 0.0, 1.0),
new ProductFieldValue("Potatoes", 0.1, 1.0),
new ProductFieldValue("Barley", 0.1, 1.0),
new ProductFieldValue("Rice", 0.0, 1.0),
new ProductFieldValue("Soy", 0.1, 1.0));
builder.addPropertyValues("lifestage",
new ProductFieldValue("Senior", 0.0, 1.0),
new ProductFieldValue("Puppy", 0.0, 1.0),
new ProductFieldValue("Adult", 0.0, 1.0));
builder.addPropertyValues("organic",
new ProductFieldValue("false", 0.0, 1.0),
new ProductFieldValue("true", 0.0, 1.1));
builder.addPropertyValues("quantity",
new ProductFieldValue(4.5, 0.0, 4.5),
new ProductFieldValue(15.0, 0.0, 15.0),
new ProductFieldValue(30.0, 0.0, 30.0));
builder.addExclusionRule(new AndRule(
new FieldPredicate("brand", "Chef Corgi"),
new FieldPredicate("organic", "true")));
builder.addExclusionRule(new AndRule(
new FieldPredicate("brand", "Chef Corgi"),
new FieldPredicate("meat", "Vegetarian")));
builder.addExclusionRule(new AndRule(
new FieldPredicate("brand", "Dog Days"),
new FieldPredicate("organic", "false")));
builder.addExclusionRule(new AndRule(
new FieldPredicate("grain", "Corn"),
new OrRule(
new FieldPredicate("organic", "true"),
new FieldPredicate("meat", "Venison"),
new FieldPredicate("meat", "Rabbit"),
new FieldPredicate("meat", "Lamb"),
new FieldPredicate("meat", "Salmon"))));
builder.addExclusionRule(new AndRule(
new FieldPredicate("organic", "true"),
new FieldPredicate("meat", "Pork")));
builder.addExclusionRule(new AndRule(
new NotRule(new FieldPredicate("grain", "Corn")),
new FieldPredicate("meat", "Pork")));
builder.addExclusionRule(new AndRule(
new OrRule(
new FieldPredicate("brand", "Chef Corgi"),
new FieldPredicate("brand", "Happy Pup")),
new OrRule(
new FieldPredicate("meat", "Rabbit"),
new FieldPredicate("meat", "Venison"))
));
return builder.build();
}