package de.nava.mlsample.service; import de.nava.mlsample.domain.Product; import de.nava.mlsample.domain.ProductSearchResult; /** * Showcase for a simple repository allowing to access and modify * {@link Product} objects in a domain specific way. * * @author Niko Schmuck */ public interface ProductRepository { void add(Product product); void remove(Long sku); Product findBySku(Long sku); ProductSearchResult findAll(); ProductSearchResult findByName(String name); ProductSearchResult findByYear(int year); // TODO: add ProductSearchResult findByPriceRange(Double min, Double max); // TODO: add ProductSearchResult findByCategory(String category); // TODO: add List<Category> findAllDistinctCategories(); Long count(); }