package com.ibatis.jpetstore.service;
import java.util.List;
import com.ibatis.common.util.PaginatedList;
import com.ibatis.dao.client.DaoManager;
import com.ibatis.jpetstore.domain.Category;
import com.ibatis.jpetstore.domain.Item;
import com.ibatis.jpetstore.domain.Product;
import com.ibatis.jpetstore.persistence.DaoConfig;
import com.ibatis.jpetstore.persistence.iface.CategoryDao;
import com.ibatis.jpetstore.persistence.iface.ItemDao;
import com.ibatis.jpetstore.persistence.iface.ProductDao;
public class CatalogService {
private CategoryDao categoryDao;
private ItemDao itemDao;
private ProductDao productDao;
public CatalogService() {
DaoManager daoManager = DaoConfig.getDaoManager();
categoryDao = (CategoryDao) daoManager.getDao(CategoryDao.class);
productDao = (ProductDao) daoManager.getDao(ProductDao.class);
itemDao = (ItemDao) daoManager.getDao(ItemDao.class);
}
public CatalogService(CategoryDao categoryDao, ItemDao itemDao, ProductDao productDao) {
this.categoryDao = categoryDao;
this.itemDao = itemDao;
this.productDao = productDao;
}
public List getCategoryList() {
return categoryDao.getCategoryList();
}
public Category getCategory(String categoryId) {
return categoryDao.getCategory(categoryId);
}
public Product getProduct(String productId) {
return productDao.getProduct(productId);
}
public PaginatedList getProductListByCategory(String categoryId) {
return productDao.getProductListByCategory(categoryId);
}
public PaginatedList searchProductList(String keywords) {
return productDao.searchProductList(keywords);
}
public PaginatedList getItemListByProduct(String productId) {
return itemDao.getItemListByProduct(productId);
}
public Item getItem(String itemId) {
return itemDao.getItem(itemId);
}
public boolean isItemInStock(String itemId) {
return itemDao.isItemInStock(itemId);
}
}