package com.commafeed.backend.dao; import java.util.List; import javax.ejb.Stateless; import javax.inject.Inject; import com.commafeed.backend.model.Feed; import com.commafeed.backend.model.FeedSubscription; import com.commafeed.backend.model.User; import com.commafeed.frontend.utils.ModelFactory.MF; import com.google.common.collect.Iterables; import com.uaihebert.factory.EasyCriteriaFactory; import com.uaihebert.model.EasyCriteria; @Stateless @SuppressWarnings("serial") public class FeedSubscriptionService extends GenericDAO { @Inject FeedCategoryService feedCategoryService; public FeedSubscription findById(User user, Long id) { EasyCriteria criteria = createCriteria(); criteria.andEquals(MF.i(proxy().getUser()), user); criteria.andEquals(MF.i(proxy().getId()), id); return Iterables.getFirst(criteria.getResultList(), null); } public FeedSubscription findByFeed(User user, Feed feed) { EasyCriteria criteria = createCriteria(); criteria.andEquals(MF.i(proxy().getUser()), user); criteria.andEquals(MF.i(proxy().getFeed()), feed); return Iterables.getFirst(criteria.getResultList(), null); } public List findAll(User user) { return findByField(MF.i(proxy().getUser()), user); } public List findWithoutCategories(User user) { EasyCriteria criteria = EasyCriteriaFactory .createQueryCriteria(em, getType()); criteria.andEquals(MF.i(proxy().getUser()), user); criteria.andIsNull(MF.i(proxy().getCategory())); return criteria.getResultList(); } }