001    package org.springframework.richclient.samples.dataeditor.domain;
002    
003    import java.util.Map;
004    import java.util.HashMap;
005    import java.util.List;
006    import java.util.ArrayList;
007    
008    public class ItemService
009    {
010        private static final Map<Integer, Item> REPOSITORY = new HashMap<Integer, Item>();
011    
012        static
013        {
014            REPOSITORY.put(1, new Item("Cheese", "Gouda", new Supplier("Jake Johnson","jake@springcource.com","555-5236","SpringCource","555-3636")));
015            REPOSITORY.put(2, new Item("Cheese", "Emmental", new Supplier("Jake Johnson","jake@springcource.com","555-5236","SpringCource","555-3636")));
016            REPOSITORY.put(3, new Item("Cheese", "Stilton", new Supplier("Jake Johnson","jake@springcource.com","555-5236","SpringCource","555-3636")));
017        }
018    
019        @SuppressWarnings("unchecked")
020        public List<Item> findItems(final ItemFilter filter)
021        {
022            List<Item> filtered = new ArrayList<Item>();
023            for (Item supplier : REPOSITORY.values())
024            {
025                if (checkFilter(supplier, filter))
026                {
027                    filtered.add(supplier);
028                }
029            }
030            return filtered;
031        }
032    
033        public Item getItem(Integer id)
034        {
035            return REPOSITORY.get(id);
036        }
037    
038        public boolean checkFilter(Item supplier, ItemFilter filter)
039        {
040            boolean nameOk = true;
041            boolean contactNameOk = true;
042            if (filter.getNameContains() != null)
043                nameOk = supplier.getName().contains(filter.getNameContains());
044            return nameOk && contactNameOk;
045        }
046    }