[jboss-svn-commits] JBL Code SVN: r7262 - in labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums: impl ui/view
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Oct 31 22:28:42 EST 2006
Author: unibrew
Date: 2006-10-31 22:28:39 -0500 (Tue, 31 Oct 2006)
New Revision: 7262
Modified:
labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/ForumImpl.java
labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewCategory.java
Log:
[JBFORUMS-135] Improving topicCount and postCount for CategoryView to be efficient.
Modified: labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/ForumImpl.java
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/ForumImpl.java 2006-11-01 00:23:55 UTC (rev 7261)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/impl/ForumImpl.java 2006-11-01 03:28:39 UTC (rev 7262)
@@ -20,8 +20,6 @@
import javax.naming.NamingException;
-import javax.portlet.PortletException;
-
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
@@ -62,8 +60,8 @@
//private Post lastPost;
private String name;
private int order;
- //private int topicCount;
- //private int postCount;
+ private int topicCount;
+ private int postCount;
//private boolean pruneEnable;
//private int pruneNext;
private int status;
@@ -71,18 +69,7 @@
private Collection watch;
//private int type;
private List watches;
- private static ForumsModule fm;
-
- private static void initializeForumsModule () {
- try {
- fm = (ForumsModule)new InitialContext().lookup("java:portal/ForumsModule");
- } catch (NamingException e) {
- e.printStackTrace();
- }
- }
-
-
/**
* @hibernate.many-to-one column="jbp_category_id"
* class="org.jboss.portlet.forums.impl.CategoryImpl"
@@ -144,9 +131,8 @@
* _column_="jbp_last_post_id"
* _class_="org.jboss.portlet.forums.impl.PostImpl"
*/
- public Post getLastPost()
+ /*public Post getLastPost()
{
- if (fm==null) initializeForumsModule();
//"select post from ForumImpl as forum" +
//"join forum.topics as topic" +
//"join topic.posts as post +
@@ -155,37 +141,33 @@
//"select topic from ForumImpl as forum" +
//"join forum.topics as topic" +
//"where topic.lastPostDate=(select MIN(t.lastPostDate) from forum.topics t)"
- Session session = fm.getHibernate().getSessionFactory().getCurrentSession();
- /*Query query = session.createQuery(
+ Session session = singleton.getCurrentSession();
+ Query query = session.createQuery(
"select post from ForumImpl as forum " +
"join forum.topics as topic " +
"join topic.posts as post " +
"where forum.id=:forumId " +
"AND post.date=(select MIN(t.lastPostDate) from forum.topics t)");
- */
- Query query =
- session.createQuery("from PostImpl as p where p.topic.forum = :forumId order by p.createDate desc");
- query.setString("forumId", "" + getId());
- query.setFirstResult(0);
- query.setMaxResults(1);
- Post lastPost = (Post)query.uniqueResult();
+
+ query.setString("forumId",getId().toString());
+ Post post2 = (Post)query.uniqueResult();
Post post = null;
for (Iterator i = getTopics().iterator(); i.hasNext();)
{
post = ((Topic)i.next()).getLastPost();
- }
- return lastPost;
- }
+ }
+ return post;
+ }*/
/**
* DOCUMENT_ME
*
* @param lastPost DOCUMENT_ME
*/
- public void setLastPost(Post lastPost)
+ /*public void setLastPost(Post lastPost)
{
//this.lastPost = lastPost;
- }
+ }*/
/**
* @hibernate.property column="jbp_name"
@@ -193,7 +175,7 @@
* update="true"
*/
public String getName()
- {
+ {
return name;
}
@@ -234,8 +216,8 @@
*/
public int getTopicCount()
{
- //return topicCount;
- return getTopics().size();
+ return topicCount;
+ //return getTopics().size();
}
/**
@@ -245,7 +227,7 @@
*/
public void setTopicCount(int size)
{
- //this.topicCount = size;
+ this.topicCount = size;
}
/**
@@ -253,7 +235,7 @@
*/
public void addTopicSize()
{
- //setTopicCount(topicCount + 1);
+ setTopicCount(topicCount + 1);
}
//TODO: Can be optimized
@@ -264,14 +246,14 @@
*/
public int getPostCount()
{
- int sum = 0;
- for (Iterator i = getTopics().iterator(); i.hasNext();)
- {
- Topic topic = (Topic)i.next();
- sum += topic.getPosts().size();
- }
- return sum;
- //return postCount;
+ //int sum = 0;
+ //for (Iterator i = getTopics().iterator(); i.hasNext();)
+ //{
+ // Topic topic = (Topic)i.next();
+ // sum += topic.getPosts().size();
+ //}
+ //return sum;
+ return postCount;
}
/**
@@ -281,7 +263,7 @@
*/
public void setPostCount(int size)
{
- //this.postCount = size;
+ this.postCount = size;
}
/**
@@ -289,7 +271,7 @@
*/
public void addPostSize()
{
- //setPostCount(postCount + 1);
+ setPostCount(postCount + 1);
}
/**
Modified: labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewCategory.java
===================================================================
--- labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewCategory.java 2006-11-01 00:23:55 UTC (rev 7261)
+++ labs/jbossforums/branches/forums22/forums/src/main/org/jboss/portlet/forums/ui/view/ViewCategory.java 2006-11-01 03:28:39 UTC (rev 7262)
@@ -27,6 +27,8 @@
import java.util.ArrayList;
import java.util.HashMap;
+import org.hibernate.Hibernate;
+
import org.jboss.portlet.forums.ForumsModule;
import org.jboss.portlet.forums.model.Category;
import org.jboss.portlet.forums.model.Forum;
@@ -154,6 +156,9 @@
Collection cour = BaseController.getForumsModule().findCategories();
if(cour!=null)
{
+ if (!Hibernate.isInitialized(cour)) {
+ Hibernate.initialize(cour);
+ }
Iterator iterator = cour.iterator();
while (iterator.hasNext())
{
@@ -184,7 +189,11 @@
this.getCategories().add(category);
//process the forums associated with this category
- Iterator forumsIterator = BaseController.getForumsModule().findForumsByCategoryId(category.getId()).iterator();
+ Collection forums = BaseController.getForumsModule().findForumsByCategoryId(category.getId());
+ if (forums!=null && !Hibernate.isInitialized(forums)) {
+ Hibernate.initialize(forums);
+ }
+ Iterator forumsIterator = forums.iterator();
Collection categoryForums = new ArrayList();
while (forumsIterator.hasNext())
{
More information about the jboss-svn-commits
mailing list