001 package market; 002 003 import data.Catalog; 004 import data.CatalogItem; 005 import data.filters.CatalogFilter; 006 007 /** 008 * Filters CatalogItems by their category. 009 */ 010 public class CFilter extends CatalogFilter { 011 012 /** 013 * ID for serialization. 014 */ 015 private static final long serialVersionUID = 251641215362836429L; 016 017 /* not needed atm... 018 * 019 * private Catalog source; 020 */ 021 private int filter; 022 023 /** 024 * @param source the source catalog. 025 * @param filter the filter to be applied: 026 * <ul><li>0: no CatalogItems are filtered</li> 027 * <li>1: CatalogItems are filtered by their category</li></ul> 028 */ 029 public CFilter(Catalog source, int filter) { 030 super(source); 031 // this.source = source; 032 this.filter = filter; 033 } 034 035 /** 036 * The actual filtering. 037 * @param ci the CatalogItem to be checked. 038 * @return <code>true</code> if CatalogItem passed the filter successfully, otherwise <code>false</code>. 039 */ 040 public boolean match(CatalogItem ci) { 041 String category = ((CIArticle)ci).getCategory(); 042 switch (filter) { 043 case 0: return true; 044 default: return category.equals(SMarket.getArticleCategories()[filter]); 045 } 046 } 047 }