package com.ibatis.jpetstore.persistence.sqlmapdao; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; import com.ibatis.common.util.PaginatedList; import com.ibatis.dao.client.DaoManager; import com.ibatis.jpetstore.domain.Product; import com.ibatis.jpetstore.persistence.iface.ProductDao; public class ProductSqlMapDao extends BaseSqlMapDao implements ProductDao { public ProductSqlMapDao(DaoManager daoManager) { super(daoManager); } public PaginatedList getProductListByCategory(String categoryId) { return queryForPaginatedList("getProductListByCategory", categoryId, PAGE_SIZE); } public Product getProduct(String productId) { return (Product) queryForObject("getProduct", productId); } public PaginatedList searchProductList(String keywords) { Object parameterObject = new ProductSearch(keywords); return queryForPaginatedList("searchProductList", parameterObject, PAGE_SIZE); } /* Inner Classes */ public static class ProductSearch { private List keywordList = new ArrayList(); public ProductSearch(String keywords) { StringTokenizer splitter = new StringTokenizer(keywords, " ", false); while (splitter.hasMoreTokens()) { keywordList.add("%" + splitter.nextToken() + "%"); } } public List getKeywordList() { return keywordList; } } }