public List getWeblogEntries(WeblogCategoryData cat, boolean subcats) throws RollerException { try { Session session = ((HibernatePersistenceStrategy) this.strategy).getSession(); List entries = new LinkedList(); if (subcats) { // Get entries in subcategories Criteria assocsQuery = session.createCriteria(WeblogCategoryAssoc.class); assocsQuery.add(Expression.eq("ancestorCategory", cat)); Iterator assocs = assocsQuery.list().iterator(); while (assocs.hasNext()) { WeblogCategoryAssoc assoc = (WeblogCategoryAssoc) assocs.next(); Criteria entriesQuery = session.createCriteria(WeblogEntryData.class); entriesQuery.add(Expression.eq("category", assoc.getCategory())); Iterator entryIter = entriesQuery.list().iterator(); while (entryIter.hasNext()) { WeblogEntryData entry = (WeblogEntryData) entryIter.next(); entries.add(entry); } } } // Get entries in category Criteria entriesQuery = session.createCriteria(WeblogEntryData.class); entriesQuery.add(Expression.eq("category", cat)); Iterator entryIter = entriesQuery.list().iterator(); while (entryIter.hasNext()) { WeblogEntryData entry = (WeblogEntryData) entryIter.next(); entries.add(entry); } return entries; } catch (HibernateException e) { throw new RollerException(e); } }
public List getWeblogCategories(WebsiteData website, boolean includeRoot) throws RollerException { if (website == null) throw new RollerException("website is null"); if (includeRoot) return getWeblogCategories(website); try { Session session = ((HibernatePersistenceStrategy) this.strategy).getSession(); Criteria criteria = session.createCriteria(WeblogCategoryAssoc.class); criteria.createAlias("category", "c"); criteria.add(Expression.eq("c.website", website)); criteria.add(Expression.isNotNull("ancestorCategory")); criteria.add(Expression.eq("relation", "PARENT")); Iterator assocs = criteria.list().iterator(); List cats = new ArrayList(); while (assocs.hasNext()) { WeblogCategoryAssoc assoc = (WeblogCategoryAssoc) assocs.next(); cats.add(assoc.getCategory()); } return cats; } catch (HibernateException e) { throw new RollerException(e); } }