private ProductCategory createDogFood()

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();
	}