From edd2ec42c760be4cebf71e3e7ca328ae28a28bf8 Mon Sep 17 00:00:00 2001 From: Athou Date: Fri, 12 Apr 2013 10:44:41 +0200 Subject: [PATCH] use metamodel --- .../backend/dao/FeedCategoryDAO.java | 18 ++++----- .../com/commafeed/backend/dao/FeedDAO.java | 7 ++-- .../commafeed/backend/dao/FeedEntryDAO.java | 5 +-- .../backend/dao/FeedEntryStatusDAO.java | 39 +++++++++---------- .../backend/dao/FeedSubscriptionDAO.java | 34 ++++++++-------- .../com/commafeed/backend/dao/GenericDAO.java | 11 ++---- .../commafeed/backend/dao/UserRoleDAO.java | 6 +-- .../backend/dao/UserSettingsDAO.java | 4 +- 8 files changed, 56 insertions(+), 68 deletions(-) diff --git a/src/main/java/com/commafeed/backend/dao/FeedCategoryDAO.java b/src/main/java/com/commafeed/backend/dao/FeedCategoryDAO.java index 64333b25..79fd0f0f 100644 --- a/src/main/java/com/commafeed/backend/dao/FeedCategoryDAO.java +++ b/src/main/java/com/commafeed/backend/dao/FeedCategoryDAO.java @@ -8,8 +8,8 @@ import javax.persistence.NoResultException; import org.apache.commons.lang.ObjectUtils; import com.commafeed.backend.model.FeedCategory; +import com.commafeed.backend.model.FeedCategory_; import com.commafeed.backend.model.User; -import com.commafeed.frontend.utils.ModelFactory.MF; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.uaihebert.model.EasyCriteria; @@ -20,27 +20,27 @@ public class FeedCategoryDAO extends GenericDAO { public List findAll(User user) { EasyCriteria criteria = createCriteria(); - criteria.andEquals(MF.i(proxy().getUser()), user); + criteria.andEquals(FeedCategory_.user.getName(), user); - criteria.innerJoinFetch(MF.i(proxy().getUser())); + criteria.innerJoinFetch(FeedCategory_.user.getName()); return criteria.getResultList(); } public FeedCategory findById(User user, Long id) { EasyCriteria criteria = createCriteria(); - criteria.andEquals(MF.i(proxy().getUser()), user); - criteria.andEquals(MF.i(proxy().getId()), id); + criteria.andEquals(FeedCategory_.user.getName(), user); + criteria.andEquals(FeedCategory_.id.getName(), id); return Iterables.getFirst(criteria.getResultList(), null); } public FeedCategory findByName(User user, String name, FeedCategory parent) { EasyCriteria criteria = createCriteria(); - criteria.andEquals(MF.i(proxy().getUser()), user); - criteria.andEquals(MF.i(proxy().getName()), name); + criteria.andEquals(FeedCategory_.user.getName(), user); + criteria.andEquals(FeedCategory_.name.getName(), name); if (parent == null) { - criteria.andIsNull(MF.i(proxy().getParent())); + criteria.andIsNull(FeedCategory_.parent.getName()); } else { - criteria.andEquals(MF.i(proxy().getParent()), parent); + criteria.andEquals(FeedCategory_.parent.getName(), parent); } FeedCategory category = null; diff --git a/src/main/java/com/commafeed/backend/dao/FeedDAO.java b/src/main/java/com/commafeed/backend/dao/FeedDAO.java index 72e51b80..97941607 100644 --- a/src/main/java/com/commafeed/backend/dao/FeedDAO.java +++ b/src/main/java/com/commafeed/backend/dao/FeedDAO.java @@ -14,7 +14,6 @@ import org.apache.commons.lang.time.DateUtils; import com.commafeed.backend.model.Feed; import com.commafeed.backend.model.Feed_; -import com.commafeed.frontend.utils.ModelFactory.MF; import com.google.common.collect.Iterables; import com.uaihebert.model.EasyCriteria; @@ -52,14 +51,14 @@ public class FeedDAO extends GenericDAO { } public Feed findByUrl(String url) { - List feeds = findByField(MF.i(proxy().getUrl()), url); + List feeds = findByField(Feed_.url, url); return Iterables.getFirst(feeds, null); } public Feed findByIdWithEntries(Long feedId, int offset, int limit) { EasyCriteria criteria = createCriteria(); - criteria.andEquals(MF.i(proxy().getId()), feedId); - criteria.leftJoinFetch(MF.i(proxy().getEntries())); + criteria.andEquals(Feed_.id.getName(), feedId); + criteria.leftJoinFetch(Feed_.entries.getName()); criteria.setFirstResult(offset); criteria.setMaxResults(limit); diff --git a/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java b/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java index 9ea33928..80675925 100644 --- a/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java +++ b/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java @@ -10,7 +10,6 @@ import javax.persistence.criteria.Root; import com.commafeed.backend.model.Feed; import com.commafeed.backend.model.FeedEntry; import com.commafeed.backend.model.FeedEntry_; -import com.commafeed.frontend.utils.ModelFactory.MF; import com.uaihebert.model.EasyCriteria; @Stateless @@ -20,8 +19,8 @@ public class FeedEntryDAO extends GenericDAO { public List findByGuids(List guids) { EasyCriteria criteria = createCriteria(); criteria.setDistinctTrue(); - criteria.andStringIn(MF.i(proxy().getGuid()), guids); - criteria.leftJoinFetch(MF.i(proxy().getFeeds())); + criteria.andStringIn(FeedEntry_.guid.getName(), guids); + criteria.leftJoinFetch(FeedEntry_.feeds.getName()); return criteria.getResultList(); } diff --git a/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java b/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java index aa61e365..952856bb 100644 --- a/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java +++ b/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java @@ -21,11 +21,9 @@ import com.commafeed.backend.model.FeedEntryContent_; import com.commafeed.backend.model.FeedEntryStatus; import com.commafeed.backend.model.FeedEntryStatus_; import com.commafeed.backend.model.FeedEntry_; -import com.commafeed.backend.model.FeedSubscription; import com.commafeed.backend.model.FeedSubscription_; import com.commafeed.backend.model.User; import com.commafeed.backend.model.UserSettings.ReadingOrder; -import com.commafeed.frontend.utils.ModelFactory.MF; import com.google.api.client.util.Lists; import com.google.api.client.util.Maps; import com.uaihebert.model.EasyCriteria; @@ -37,13 +35,13 @@ public class FeedEntryStatusDAO extends GenericDAO { public FeedEntryStatus findById(User user, Long id) { EasyCriteria criteria = createCriteria(); - criteria.andEquals(MF.i(proxy().getId()), id); + criteria.andEquals(FeedEntryStatus_.id.getName(), id); - criteria.innerJoinFetch(MF.i(proxy().getSubscription())); - criteria.innerJoinFetch(MF.i(proxy().getEntry())); + criteria.innerJoinFetch(FeedEntryStatus_.subscription.getName()); + criteria.innerJoinFetch(FeedEntryStatus_.entry.getName()); - criteria.andJoinEquals(MF.i(proxy().getSubscription()), - MF.i(MF.p(FeedSubscription.class).getUser()), user); + criteria.andJoinEquals(FeedEntryStatus_.subscription.getName(), + FeedSubscription_.user.getName(), user); FeedEntryStatus status = null; try { @@ -54,8 +52,8 @@ public class FeedEntryStatusDAO extends GenericDAO { return status; } - public List findByKeywords(User user, - String keywords, int offset, int limit, boolean includeContent) { + public List findByKeywords(User user, String keywords, + int offset, int limit, boolean includeContent) { String joinedKeywords = StringUtils.join( keywords.toLowerCase().split(" "), "%"); @@ -136,8 +134,7 @@ public class FeedEntryStatusDAO extends GenericDAO { public List findByFeed(Feed feed, User user, boolean unreadOnly, ReadingOrder order, boolean includeContent) { - return findByFeed(feed, user, unreadOnly, -1, -1, order, - includeContent); + return findByFeed(feed, user, unreadOnly, -1, -1, order, includeContent); } public List findByFeed(Feed feed, User user, @@ -169,16 +166,16 @@ public class FeedEntryStatusDAO extends GenericDAO { return q.getResultList(); } - public List findByCategories(List categories, - User user, boolean unreadOnly, ReadingOrder order, - boolean includeContent) { + public List findByCategories( + List categories, User user, boolean unreadOnly, + ReadingOrder order, boolean includeContent) { return findByCategories(categories, user, unreadOnly, -1, -1, order, includeContent); } - public List findByCategories(List categories, - User user, boolean unreadOnly, int offset, int limit, - ReadingOrder order, boolean includeContent) { + public List findByCategories( + List categories, User user, boolean unreadOnly, + int offset, int limit, ReadingOrder order, boolean includeContent) { CriteriaQuery query = builder.createQuery(getType()); Root root = query.from(getType()); @@ -225,14 +222,14 @@ public class FeedEntryStatusDAO extends GenericDAO { public void markCategoryEntries(User user, List categories, Date olderThan) { - List statuses = findByCategories(categories, user, true, - ReadingOrder.desc, false); + List statuses = findByCategories(categories, user, + true, ReadingOrder.desc, false); update(markList(statuses, olderThan)); } public void markAllEntries(User user, Date olderThan) { - List statuses = findAll(user, true, - ReadingOrder.desc, false); + List statuses = findAll(user, true, ReadingOrder.desc, + false); update(markList(statuses, olderThan)); } diff --git a/src/main/java/com/commafeed/backend/dao/FeedSubscriptionDAO.java b/src/main/java/com/commafeed/backend/dao/FeedSubscriptionDAO.java index 1b10324e..7a8fcaf7 100644 --- a/src/main/java/com/commafeed/backend/dao/FeedSubscriptionDAO.java +++ b/src/main/java/com/commafeed/backend/dao/FeedSubscriptionDAO.java @@ -7,8 +7,8 @@ import javax.ejb.Stateless; import com.commafeed.backend.model.Feed; import com.commafeed.backend.model.FeedCategory; import com.commafeed.backend.model.FeedSubscription; +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; @@ -17,37 +17,35 @@ import com.uaihebert.model.EasyCriteria; @SuppressWarnings("serial") public class FeedSubscriptionDAO extends GenericDAO { - - public FeedSubscription findById(User user, Long id) { EasyCriteria criteria = createCriteria(); - criteria.andEquals(MF.i(proxy().getUser()), user); - criteria.andEquals(MF.i(proxy().getId()), id); - criteria.leftJoinFetch(MF.i(proxy().getFeed())); - criteria.leftJoinFetch(MF.i(proxy().getUser())); + criteria.andEquals(FeedSubscription_.user.getName(), user); + criteria.andEquals(FeedSubscription_.id.getName(), id); + criteria.leftJoinFetch(FeedSubscription_.feed.getName()); + criteria.leftJoinFetch(FeedSubscription_.user.getName()); return Iterables.getFirst(criteria.getResultList(), null); } public List findByFeed(Feed feed) { EasyCriteria criteria = createCriteria(); - criteria.andEquals(MF.i(proxy().getFeed()), feed); + criteria.andEquals(FeedSubscription_.feed.getName(), feed); return criteria.getResultList(); } public FeedSubscription findByFeed(User user, Feed feed) { EasyCriteria criteria = createCriteria(); - criteria.andEquals(MF.i(proxy().getUser()), user); - criteria.andEquals(MF.i(proxy().getFeed()), feed); + criteria.andEquals(FeedSubscription_.user.getName(), user); + criteria.andEquals(FeedSubscription_.feed.getName(), feed); return Iterables.getFirst(criteria.getResultList(), null); } public List findAll(User user) { EasyCriteria criteria = createCriteria(); - criteria.andEquals(MF.i(proxy().getUser()), user); + criteria.andEquals(FeedSubscription_.user.getName(), user); - criteria.innerJoinFetch(MF.i(proxy().getFeed())); - criteria.innerJoinFetch(MF.i(proxy().getUser())); - criteria.leftJoinFetch(MF.i(proxy().getCategory())); + criteria.innerJoinFetch(FeedSubscription_.feed.getName()); + criteria.innerJoinFetch(FeedSubscription_.user.getName()); + criteria.leftJoinFetch(FeedSubscription_.category.getName()); return criteria.getResultList(); } @@ -55,8 +53,8 @@ public class FeedSubscriptionDAO extends GenericDAO { FeedCategory category) { EasyCriteria criteria = EasyCriteriaFactory .createQueryCriteria(em, getType()); - criteria.andEquals(MF.i(proxy().getUser()), user); - criteria.andEquals(MF.i(proxy().getCategory()), category); + criteria.andEquals(FeedSubscription_.user.getName(), user); + criteria.andEquals(FeedSubscription_.category.getName(), category); return criteria.getResultList(); } @@ -64,8 +62,8 @@ public class FeedSubscriptionDAO extends GenericDAO { public List findWithoutCategories(User user) { EasyCriteria criteria = EasyCriteriaFactory .createQueryCriteria(em, getType()); - criteria.andEquals(MF.i(proxy().getUser()), user); - criteria.andIsNull(MF.i(proxy().getCategory())); + criteria.andEquals(FeedSubscription_.user.getName(), user); + criteria.andIsNull(FeedSubscription_.category.getName()); return criteria.getResultList(); } diff --git a/src/main/java/com/commafeed/backend/dao/GenericDAO.java b/src/main/java/com/commafeed/backend/dao/GenericDAO.java index 6a59ed37..10fd6c13 100644 --- a/src/main/java/com/commafeed/backend/dao/GenericDAO.java +++ b/src/main/java/com/commafeed/backend/dao/GenericDAO.java @@ -11,10 +11,10 @@ import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; +import javax.persistence.metamodel.Attribute; import com.commafeed.backend.model.AbstractModel; import com.commafeed.backend.model.FeedEntryStatus; -import com.commafeed.frontend.utils.ModelFactory.MF; import com.google.common.reflect.TypeToken; import com.uaihebert.factory.EasyCriteriaFactory; import com.uaihebert.model.EasyCriteria; @@ -124,9 +124,9 @@ public abstract class GenericDAO implements return em.createQuery(query).getSingleResult(); } - public List findByField(String field, Object value) { + public List findByField(Attribute field, V value) { EasyCriteria criteria = createCriteria(); - criteria.andEquals(field, value); + criteria.andEquals(field.getName(), value); return criteria.getResultList(); } @@ -148,9 +148,4 @@ public abstract class GenericDAO implements public EasyCriteria createCriteria() { return EasyCriteriaFactory.createQueryCriteria(em, getType()); } - - protected T proxy() { - return MF.p(getType()); - } - } diff --git a/src/main/java/com/commafeed/backend/dao/UserRoleDAO.java b/src/main/java/com/commafeed/backend/dao/UserRoleDAO.java index 55ff9b1a..7751ecca 100644 --- a/src/main/java/com/commafeed/backend/dao/UserRoleDAO.java +++ b/src/main/java/com/commafeed/backend/dao/UserRoleDAO.java @@ -8,7 +8,7 @@ import javax.ejb.Stateless; import com.commafeed.backend.model.User; import com.commafeed.backend.model.UserRole; import com.commafeed.backend.model.UserRole.Role; -import com.commafeed.frontend.utils.ModelFactory.MF; +import com.commafeed.backend.model.UserRole_; import com.google.common.collect.Sets; @SuppressWarnings("serial") @@ -16,12 +16,12 @@ import com.google.common.collect.Sets; public class UserRoleDAO extends GenericDAO { public List findAll(User user) { - return findByField(MF.i(MF.p(UserRole.class).getUser()), user); + return findByField(UserRole_.user, user); } public Set findRoles(User user) { Set list = Sets.newHashSet(); - for (UserRole role : findByField(MF.i(proxy().getUser()), user)) { + for (UserRole role : findByField(UserRole_.user, user)) { list.add(role.getRole()); } return list; diff --git a/src/main/java/com/commafeed/backend/dao/UserSettingsDAO.java b/src/main/java/com/commafeed/backend/dao/UserSettingsDAO.java index 5610e3ab..26346e52 100644 --- a/src/main/java/com/commafeed/backend/dao/UserSettingsDAO.java +++ b/src/main/java/com/commafeed/backend/dao/UserSettingsDAO.java @@ -5,7 +5,7 @@ import javax.persistence.NoResultException; import com.commafeed.backend.model.User; import com.commafeed.backend.model.UserSettings; -import com.commafeed.frontend.utils.ModelFactory.MF; +import com.commafeed.backend.model.UserSettings_; import com.uaihebert.factory.EasyCriteriaFactory; import com.uaihebert.model.EasyCriteria; @@ -17,7 +17,7 @@ public class UserSettingsDAO extends GenericDAO { EasyCriteria criteria = EasyCriteriaFactory .createQueryCriteria(em, getType()); - criteria.andEquals(MF.i(proxy().getUser()), user); + criteria.andEquals(UserSettings_.user.getName(), user); UserSettings settings = null; try {