package com.biznow.ordernow.filter; import java.io.Serializable; import java.util.HashMap; import java.util.List; import java.util.Map; import com.biznow.ordernow.model.FoodMenuItem; import com.data.menu.MenuPropertyKey; import com.data.menu.MenuPropertyValue; import com.util.Utilities; public class MenuFilter implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private Map<MenuPropertyKey, List<MenuPropertyValue>> filterProperties; public MenuFilter() { filterProperties = new HashMap<MenuPropertyKey, List<MenuPropertyValue>>(); } public Map<MenuPropertyKey, List<MenuPropertyValue>> getFilterProperties() { return filterProperties; } public void addFilter(Map<MenuPropertyKey, List<MenuPropertyValue>> filterProp) { if (filterProperties == null) { filterProperties = new HashMap<MenuPropertyKey, List<MenuPropertyValue>>(); } filterProperties.putAll(filterProp); } public boolean isItemFiltered(FoodMenuItem item) { Utilities.info("isItemFiltered " + filterProperties + item); if (filterProperties == null || filterProperties.isEmpty()) { return true; } Map<MenuPropertyKey, MenuPropertyValue> dishProperties = item.getDishFilterProperties(); for (MenuPropertyKey filterKey : filterProperties.keySet()) { MenuPropertyValue dishFilterValue = dishProperties.get(filterKey); if ((dishFilterValue != null && filterProperties.get(filterKey) != null && !filterProperties.get(filterKey).isEmpty() && !filterProperties.get(filterKey).contains(dishFilterValue)) && !filterProperties.get(filterKey).contains(MenuPropertyValue.All)) { return false; } } return true; } }