Now with a 22-recipe survey_dataset.xml.
Unit test shows an example of checking that Honey cake contains gluten, eggs and spice but not red meat, shellfish or poultry.
This commit is contained in:
@@ -4,9 +4,30 @@ import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
|
||||
@XStreamAlias("ing")
|
||||
public class Ingredient {
|
||||
public enum TYPE { ALCOHOL, DAIRY, EGGS, FISH, GLUTEN, GRAIN, NUTS, PORK, POULTRY, RED_MEAT, SHELLFISH, SPICE, SUGAR}
|
||||
|
||||
private String item;
|
||||
|
||||
public String getItem() {
|
||||
return item;
|
||||
}
|
||||
|
||||
public boolean isType(TYPE type) {
|
||||
switch (type) {
|
||||
case DAIRY :
|
||||
return item.contains("margarine");
|
||||
case EGGS :
|
||||
return item.equals("egg") || item.equals("eggs");
|
||||
case GLUTEN :
|
||||
return item.contains("flour");
|
||||
case RED_MEAT :
|
||||
return item.contains("beef");
|
||||
case SPICE :
|
||||
return item.endsWith("cinnamon") || item.endsWith("nutmeg") || item.endsWith("cloves");
|
||||
case SUGAR :
|
||||
return item.endsWith("sugar");
|
||||
default : //unknown ingredient, e.g. coffee, bananas, honey
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
33
src/net/woodyfolsom/cs6601/p2/IngredientDivision.java
Normal file
33
src/net/woodyfolsom/cs6601/p2/IngredientDivision.java
Normal file
@@ -0,0 +1,33 @@
|
||||
package net.woodyfolsom.cs6601.p2;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamImplicit;
|
||||
|
||||
@XStreamAlias("ing-div")
|
||||
public class IngredientDivision {
|
||||
@XStreamImplicit
|
||||
private List<Ingredient> ingredients;
|
||||
private String title;
|
||||
|
||||
public boolean contains(Ingredient.TYPE ingredientType) {
|
||||
for (Ingredient ingredient : ingredients) {
|
||||
if (ingredient.isType(ingredientType)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public Ingredient getIngredient(int index) {
|
||||
return ingredients.get(index);
|
||||
}
|
||||
|
||||
public int getIngredientsSize() {
|
||||
return ingredients.size();
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
}
|
||||
55
src/net/woodyfolsom/cs6601/p2/Ingredients.java
Normal file
55
src/net/woodyfolsom/cs6601/p2/Ingredients.java
Normal file
@@ -0,0 +1,55 @@
|
||||
package net.woodyfolsom.cs6601.p2;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamImplicit;
|
||||
|
||||
@XStreamAlias("ingredients")
|
||||
public class Ingredients {
|
||||
@XStreamImplicit
|
||||
private List<Ingredient> ingredients;
|
||||
@XStreamImplicit
|
||||
private List<IngredientDivision> ingDivs;
|
||||
|
||||
public boolean contains(Ingredient.TYPE ingredientType) {
|
||||
for (Ingredient ingredient : ingredients) {
|
||||
if (ingredient.isType(ingredientType)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
for (IngredientDivision ingDiv : ingDivs) {
|
||||
if (ingDiv.contains(ingredientType)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Ingredient> getIngredients() {
|
||||
return ingredients;
|
||||
}
|
||||
|
||||
public void setIngredients(List<Ingredient> ingredients) {
|
||||
this.ingredients = ingredients;
|
||||
}
|
||||
|
||||
public List<IngredientDivision> getIngDivs() {
|
||||
return ingDivs;
|
||||
}
|
||||
|
||||
private Object readResolve() {
|
||||
if (ingDivs == null) {
|
||||
ingDivs = new ArrayList<IngredientDivision>();
|
||||
}
|
||||
if (ingredients == null) {
|
||||
ingredients = new ArrayList<Ingredient>();
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public void setIngDivs(List<IngredientDivision> ingDivs) {
|
||||
this.ingDivs = ingDivs;
|
||||
}
|
||||
}
|
||||
@@ -1,24 +1,17 @@
|
||||
package net.woodyfolsom.cs6601.p2;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
|
||||
@XStreamAlias("recipe")
|
||||
public class Recipe {
|
||||
|
||||
private List<Ingredient> ingredients;
|
||||
private Ingredients ingredients;
|
||||
private RecipeHead head;
|
||||
|
||||
public RecipeHead getHead() {
|
||||
return head;
|
||||
}
|
||||
|
||||
public Ingredient getIngredient(int index) {
|
||||
return ingredients.get(index);
|
||||
}
|
||||
|
||||
public int getIngredientsSize() {
|
||||
return ingredients.size();
|
||||
public Ingredients getIngredients() {
|
||||
return ingredients;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user