PageRenderTime 57ms CodeModel.GetById 28ms RepoModel.GetById 0ms app.codeStats 1ms

/src/java/com/idega/block/forum/data/ForumDataBMPBean.java

https://github.com/idega/com.idega.block.forum
Java | 245 lines | 189 code | 46 blank | 10 comment | 6 complexity | 708c171066cc53548093a14c0039290d MD5 | raw file
Possible License(s): GPL-3.0
  1. package com.idega.block.forum.data;
  2. import java.sql.SQLException;
  3. import java.sql.Timestamp;
  4. import java.util.Collection;
  5. import java.util.Iterator;
  6. import javax.ejb.EJBException;
  7. import javax.ejb.FinderException;
  8. import com.idega.block.category.data.ICCategory;
  9. import com.idega.core.user.data.User;
  10. import com.idega.data.TreeableEntityBMPBean;
  11. /**
  12. * Title: Forums<p>
  13. * Description: <p>
  14. * Copyright: Copyright (c) idega margmiðlun hf.<p>
  15. * Company: idega margmiðlun hf.<p>
  16. * @author idega 2001 - idega team - <a href="mailto:laddi@idega.is">laddi@idega.is</a>
  17. * @version 2.0
  18. */
  19. public class ForumDataBMPBean extends TreeableEntityBMPBean implements ForumData {
  20. public ForumDataBMPBean() {
  21. super();
  22. }
  23. public ForumDataBMPBean(int id)throws SQLException{
  24. super(id);
  25. }
  26. public void initializeAttributes(){
  27. addAttribute(getIDColumnName());
  28. addAttribute(getColumnNameParentThreadID(),"Parent thread",true,true,Integer.class);
  29. addAttribute(getColumnNameTopicID(),"Topic",true,true,Integer.class,"many-to-one",ICCategory.class);
  30. addAttribute(getColumnNameThreadSubject(),"Thread subject",true,true,String.class);
  31. addAttribute(getColumnNameThreadBody(),"Thread body",true,true,String.class,15000);
  32. addAttribute(getColumnNameUserID(),"User",true,true,Integer.class,"many-to-one",User.class);
  33. addAttribute(getColumnNameUserName(),"User name",true,true,String.class);
  34. addAttribute(getColumnNameUserEMail(),"User e-mail",true,true,String.class);
  35. addAttribute(getColumnNameThreadDate(),"Date",true,true,Timestamp.class);
  36. addAttribute(getColumnNameNumberOfResponses(),"Responses",true,true,Integer.class);
  37. addAttribute(getColumnNameTopParentThreadID(),"Parent thread",true,true,Integer.class);
  38. addAttribute(getColumnNameNumberOfSubThreads(),"Sub Threads",true,true,Integer.class);
  39. addAttribute(getColumnNameValid(),"Valid",true,true,String.class);
  40. setNullable(getColumnNameUserID(),true);
  41. }
  42. public static String getEntityTableName() { return "FO_THREAD"; }
  43. public static String getColumnNameForumThreadID() { return "FO_THREAD_ID"; }
  44. public static String getColumnNameParentThreadID() { return "PARENT_THREAD_ID";}
  45. public static String getColumnNameTopicID() { return "IC_CATEGORY_ID"; }
  46. public static String getColumnNameThreadSubject() { return "THREAD_SUBJECT"; }
  47. public static String getColumnNameThreadBody() { return "THREAD_BODY"; }
  48. public static String getColumnNameUserID() { return com.idega.user.data.UserBMPBean.getColumnNameUserID(); }
  49. public static String getColumnNameUserName() { return "USER_NAME"; }
  50. public static String getColumnNameUserEMail() { return "USER_EMAIL"; }
  51. public static String getColumnNameThreadDate() { return "THREAD_DATE"; }
  52. public static String getColumnNameNumberOfResponses() { return "NUMBER_OF_RESPONSES"; }
  53. public static String getColumnNameTopParentThreadID() { return "TOP_PARENT_THREAD_ID";}
  54. public static String getColumnNameNumberOfSubThreads() { return "NUMBER_OF_SUB_THREADS"; }
  55. public static String getColumnNameValid() { return "VALID"; }
  56. public String getEntityName(){
  57. return getEntityTableName();
  58. }
  59. //Get
  60. public int getParentThreadID(){
  61. return getIntColumnValue(getColumnNameParentThreadID());
  62. }
  63. public ICCategory getTopic(){
  64. return (ICCategory) getColumnValue(getColumnNameTopicID());
  65. }
  66. public int getTopicID(){
  67. return getIntColumnValue(getColumnNameTopicID());
  68. }
  69. public String getThreadSubject(){
  70. return (String)getColumnValue(getColumnNameThreadSubject());
  71. }
  72. public String getThreadBody(){
  73. return (String)getColumnValue(getColumnNameThreadBody());
  74. }
  75. public int getUserID(){
  76. return getIntColumnValue(getColumnNameUserID());
  77. }
  78. public String getUserName(){
  79. return (String)getColumnValue(getColumnNameUserName());
  80. }
  81. public String getUserEMail(){
  82. return (String)getColumnValue(getColumnNameUserEMail());
  83. }
  84. public Timestamp getThreadDate(){
  85. return (Timestamp)getColumnValue(getColumnNameThreadDate());
  86. }
  87. public int getNumberOfResponses(){
  88. return getIntColumnValue(getColumnNameNumberOfResponses());
  89. }
  90. public int getTopParentID(){
  91. return getIntColumnValue(getColumnNameTopParentThreadID());
  92. }
  93. public int getNumberOfSubThreads(){
  94. return getIntColumnValue(getColumnNameNumberOfSubThreads());
  95. }
  96. public boolean isValid(){
  97. if (((String)getColumnValue(getColumnNameValid())).equals("Y") ) {
  98. return true;
  99. }
  100. else {
  101. return false;
  102. }
  103. }
  104. //Set
  105. public void setParentThreadID(int parentThreadID){
  106. setColumn(getColumnNameParentThreadID(),parentThreadID);
  107. }
  108. public void setTopicID(int topicID){
  109. setColumn(getColumnNameTopicID(),topicID);
  110. }
  111. public void setThreadSubject(String threadSubject){
  112. setColumn(getColumnNameThreadSubject(),threadSubject);
  113. }
  114. public void setThreadBody(String threadBody){
  115. setColumn(getColumnNameThreadBody(),threadBody);
  116. }
  117. public void setUserID(int userID){
  118. setColumn(getColumnNameUserID(),userID);
  119. }
  120. public void setUserName(String userName){
  121. setColumn(getColumnNameUserName(),userName);
  122. }
  123. public void setUserEMail(String email){
  124. setColumn(getColumnNameUserEMail(),email);
  125. }
  126. public void setThreadDate(Timestamp threadDate){
  127. setColumn(getColumnNameThreadDate(),threadDate);
  128. }
  129. public void setNumberOfResponses(int numberOfResponses){
  130. setColumn(getColumnNameNumberOfResponses(),numberOfResponses);
  131. }
  132. public void setTopParentID(int topParentID){
  133. setColumn(getColumnNameTopParentThreadID(),topParentID);
  134. }
  135. public void setNumberOfSubThreads(int numberOfSubThreads){
  136. setColumn(getColumnNameNumberOfSubThreads(),numberOfSubThreads);
  137. }
  138. public void setValid(boolean valid){
  139. if (valid) {
  140. setColumn(getColumnNameValid(),"Y");
  141. }
  142. else {
  143. setColumn(getColumnNameValid(),"N");
  144. }
  145. }
  146. public Iterator getChildrenIterator(){
  147. Iterator iter = super.getChildrenIterator(getColumnNameThreadDate());
  148. return iter;
  149. }
  150. public Collection ejbFindAllThreads(ICCategory category) throws FinderException {
  151. String sql = "select "+getIDColumnName()+" from "+getEntityTableName()+" where "+ForumDataBMPBean.getColumnNameTopicID()+" = "+Integer.toString(category.getID())+" and "+ForumDataBMPBean.getColumnNameParentThreadID()+" = -1 and "+ForumDataBMPBean.getColumnNameValid()+" = 'Y' order by "+ForumDataBMPBean.getColumnNameThreadDate()+" desc";
  152. return super.idoFindIDsBySQL(sql);
  153. }
  154. public Collection ejbFindAllThreads(ICCategory category,int numberOfReturns) throws FinderException {
  155. String sql = "select "+getIDColumnName()+" from "+getEntityTableName()+" where "+ForumDataBMPBean.getColumnNameTopicID()+" = "+Integer.toString(category.getID())+" and "+ForumDataBMPBean.getColumnNameParentThreadID()+" = -1 and "+ForumDataBMPBean.getColumnNameValid()+" = 'Y' order by "+ForumDataBMPBean.getColumnNameThreadDate()+" desc";
  156. return super.idoFindIDsBySQL(sql,numberOfReturns);
  157. }
  158. public int ejbHomeGetNumberOfThreads(ICCategory category) throws EJBException {
  159. try{
  160. String sql = "select count("+getIDColumnName()+") from "+getEntityTableName()+" where "+ForumDataBMPBean.getColumnNameTopicID()+" = "+Integer.toString(category.getID())+" and "+ForumDataBMPBean.getColumnNameParentThreadID()+" = -1 and "+ForumDataBMPBean.getColumnNameValid()+" = 'Y'";
  161. return super.idoGetNumberOfRecords(sql);
  162. }
  163. catch(com.idega.data.IDOException idoe){
  164. throw new EJBException(idoe);
  165. }
  166. }
  167. public Collection ejbFindNewestThread(ICCategory category) throws FinderException {
  168. String sql = "select "+getIDColumnName()+" from "+getEntityTableName()+" where "+ForumDataBMPBean.getColumnNameTopicID()+" = "+Integer.toString(category.getID())+" and "+ForumDataBMPBean.getColumnNameParentThreadID()+" = -1 and "+ForumDataBMPBean.getColumnNameValid()+" = 'Y' order by "+ForumDataBMPBean.getColumnNameThreadDate()+" desc";
  169. return super.idoFindIDsBySQL(sql,1);
  170. }
  171. public Collection ejbFindThreadsInCategories(Collection categories,int numberOfReturns) throws FinderException {
  172. StringBuffer sql = new StringBuffer();
  173. sql.append("select "+getIDColumnName()+" from ");
  174. sql.append(getEntityTableName());
  175. sql.append(" where ");
  176. sql.append(ForumDataBMPBean.getColumnNameParentThreadID());
  177. sql.append(" = -1 and ");
  178. sql.append(ForumDataBMPBean.getColumnNameValid());
  179. sql.append(" = 'Y' and (");
  180. Iterator iter = categories.iterator();
  181. while (iter.hasNext()) {
  182. ICCategory item = (ICCategory) iter.next();
  183. sql.append(getColumnNameTopicID());
  184. sql.append(" = ");
  185. sql.append(String.valueOf(item.getID()));
  186. if ( iter.hasNext() ) {
  187. sql.append(" or ");
  188. }
  189. }
  190. sql.append(") order by ");
  191. sql.append(ForumDataBMPBean.getColumnNameThreadDate());
  192. sql.append(" desc");
  193. return super.idoFindIDsBySQL(sql.toString(),numberOfReturns);
  194. }
  195. public Collection ejbFindAllTopLevelThreads() throws FinderException {
  196. String sql = "select "+getIDColumnName()+" from "+getEntityTableName()+" where "+ForumDataBMPBean.getColumnNameParentThreadID()+" = -1 and "+ForumDataBMPBean.getColumnNameValid()+" = 'Y' order by "+ForumDataBMPBean.getColumnNameThreadDate()+" desc";
  197. return super.idoFindIDsBySQL(sql);
  198. }
  199. } // class ForumThread