package com.biznow.ordernow.model; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import com.data.menu.Ingredient; import com.data.menu.IngredientOption; public class FoodIngredient implements Serializable { private static final long serialVersionUID = 1L; private Ingredient ingredient; private ArrayList<IngredientOptionView> options; private ArrayList<IngredientOptionView> selectedOptions; public ArrayList<IngredientOptionView> getSelectedOptions() { return selectedOptions; } public void setSelectedOptions(List<IngredientOptionView> selectedOptions) { if (selectedOptions != null) { prepareSelectedOptions(selectedOptions); } } public void setPreSelectedOptions(List<IngredientOption> selectedOptions) { if (selectedOptions != null) { List<IngredientOption> options = this.ingredient.getIngredientOptions(); for (IngredientOption option : options) { if (selectedOptions.contains(option)) { IngredientOptionView opv = new IngredientOptionView(option); opv.setSelected(true); this.selectedOptions.add(opv); } } } } public List<IngredientOptionView> getIngredientOptions() { return options; } public void setIngredientOptionsView(List<IngredientOption> selectedOptions) { setIngredientOptionsView(); if (selectedOptions != null && !selectedOptions.isEmpty()) { for (IngredientOptionView option : options) { IngredientOption ingOption = option.getOption(); if (selectedOptions.contains(ingOption)) { option.setSelected(true); this.selectedOptions.add(option); } } } } public void setIngredientOptionsView() { if (this.ingredient != null) { List<IngredientOption> ingoptions = this.ingredient.getIngredientOptions(); if (ingoptions != null) { for (IngredientOption option : ingoptions) { IngredientOptionView opv = new IngredientOptionView(option); this.options.add(opv); } } } } public FoodIngredient(Ingredient ingredient, ArrayList<IngredientOption> selectedOptions) { super(); this.ingredient = ingredient; this.selectedOptions = new ArrayList<IngredientOptionView>(); this.options = new ArrayList<IngredientOptionView>(); setIngredientOptionsView(selectedOptions); } public FoodIngredient(Ingredient ingredient) { super(); this.ingredient = ingredient; this.selectedOptions = new ArrayList<IngredientOptionView>(); this.options = new ArrayList<IngredientOptionView>(); setIngredientOptionsView(); } public String getTitle() { return ingredient.getTitle(); } public List<IngredientOption> getOptions() { return ingredient.getIngredientOptions(); } public void addOption(IngredientOptionView optionview) { if (!selectedOptions.contains(optionview)) { selectedOptions.add(optionview); } } public void removeOption(IngredientOptionView optionview) { if (selectedOptions.contains(optionview)) { selectedOptions.remove(optionview); } } public String getBitMapText() { String text = getTitle(); if (getMinOptionSelection() > 0) { text += "\nMin : " + getMinOptionSelection(); } if (selectedOptions != null && !selectedOptions.isEmpty()) { text += "\n\nSelected:\n"; for (IngredientOptionView option : selectedOptions) { text += option.getOptionName() + "\n"; } } else { text += "\n\nSelected: NONE"; } return text; } public void prepareSelectedOptions(List<IngredientOptionView> selectedOptions) { this.selectedOptions = new ArrayList<IngredientOptionView>(); if (selectedOptions != null) { List<IngredientOption> options = ingredient.getIngredientOptions(); for (IngredientOption option : options) { IngredientOptionView opv = new IngredientOptionView(option); if (selectedOptions.contains(opv)) { this.selectedOptions.add(opv); } } } } public int getMinOptionSelection() { return ingredient.getMinOptionSelection(); } public boolean isMinOptionsSelected() { if (getMinOptionSelection() == 0) { return true; } if (selectedOptions != null && selectedOptions.size() >= getMinOptionSelection()) { return true; } return false; } }