Counter.java
上传用户:cdpainuo
上传日期:2022-07-12
资源大小:5257k
文件大小:4k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. package com.appspot.cindyblog.util;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import java.util.Set;
  5. import javax.persistence.EntityManager;
  6. import com.appspot.cindyblog.common.EMF;
  7. import com.appspot.cindyblog.pojo.ArticleBean;
  8. import com.appspot.cindyblog.pojo.DiscussBean;
  9. import com.appspot.cindyblog.pojo.MessageBean;
  10. import com.appspot.cindyblog.service.BlogService;
  11. public class Counter {
  12. public static int articleCount = -1;
  13. public static int disscussCount = -1;
  14. public static int messageCount = -1;
  15. private static Counter counter = null;
  16. private static Map<String,Integer> articleMap = null; 
  17. private static Map<Integer,Integer> disscussMap = new HashMap<Integer,Integer>();
  18. private Counter(){
  19. EntityManager em = null;
  20. BlogService bs = null;
  21. try{
  22. if(articleCount == -1){
  23. em = EMF.get().createEntityManager();
  24. bs = (BlogService) Singleton.getInstance(BlogService.class);
  25. articleCount = bs.getObjectCount(ArticleBean.class, em);
  26. disscussCount = bs.getObjectCount(DiscussBean.class, em);
  27. messageCount = bs.getObjectCount(MessageBean.class, em);
  28. }
  29. }catch(Exception ex){
  30. ex.printStackTrace();
  31. }finally{
  32. bs = null;
  33. if(em.isOpen()){
  34. em.close();
  35. }
  36. }
  37. }
  38. public static synchronized int getArticleCount(String value) {
  39. int count = 0;
  40. if(articleMap != null && articleMap.size() != 0){
  41. count = articleMap.get(value);
  42. }
  43. return count;
  44. }
  45. public static synchronized int getDisscussCount() {
  46. EntityManager em = null;
  47. BlogService bs = null;
  48. try{
  49. if(disscussCount == -1){
  50. em = EMF.get().createEntityManager();
  51. bs = (BlogService) Singleton.getInstance(BlogService.class);
  52. disscussCount = bs.getObjectCount(DiscussBean.class, em);
  53. }
  54. }catch(Exception ex){
  55. ex.printStackTrace();
  56. }finally{
  57. if(em != null && em.isOpen()){
  58. em.close();
  59. }
  60. em = null;
  61. bs = null;
  62. return disscussCount;
  63. }
  64. }
  65. public static synchronized int getMessageCount() {
  66. EntityManager em = null;
  67. BlogService bs = null;
  68. try{
  69. if(messageCount == -1){
  70. em = EMF.get().createEntityManager();
  71. bs = (BlogService) Singleton.getInstance(BlogService.class);
  72. messageCount = bs.getObjectCount(MessageBean.class, em);
  73. }
  74. }catch(Exception ex){
  75. ex.printStackTrace();
  76. }finally{
  77. if(em != null && em.isOpen()){
  78. em.close();
  79. }
  80. em = null;
  81. bs = null;
  82. return messageCount;
  83. }
  84. }
  85. public static synchronized Counter getCounter() {
  86. if(counter == null){
  87. counter = new Counter();
  88. }
  89. return counter;
  90. }
  91. public static synchronized void setArticleCount(Map<String,Integer> map){
  92. if(articleMap == null){
  93. articleMap = map;
  94. }
  95. }
  96. public static synchronized void addSingleArticleCount(String value){
  97. if(value != null && !"".equals(value)){
  98. int allcount = articleMap.get("All");
  99. if(articleMap.get(value) == null){
  100. articleMap.put(value,1);
  101. articleMap.put("All", ++allcount);
  102. }else{
  103. int count = articleMap.get(value);
  104. articleMap.put(value, ++count);
  105. articleMap.put("All", ++allcount);
  106. }
  107. }
  108. }
  109. public static synchronized void addSingleDisscussCount(int value){
  110. EntityManager em = null;
  111. BlogService bs = null;
  112. try{
  113. int count = 0;
  114. if(disscussMap.get(value) == null){
  115. em = EMF.get().createEntityManager();
  116. bs = (BlogService) Singleton.getInstance(BlogService.class);
  117. count = bs.getDisscussCount(new Long(value), em);
  118. disscussMap.put(value, ++count);
  119. }else{
  120. count = disscussMap.get(value);
  121. disscussMap.put(value, ++count);
  122. disscussCount++;
  123. }
  124. }catch(Exception ex){
  125. ex.printStackTrace();
  126. }finally{
  127. if(em != null && em.isOpen()){
  128. em.close();
  129. }
  130. em = null;
  131. bs = null;
  132. }
  133. }
  134. public static synchronized int getSingleDisscussCount(int value){
  135. int count = 0;
  136. EntityManager em = null;
  137. BlogService bs = null;
  138. try{
  139. if(disscussMap.get(value) == null){
  140. em = EMF.get().createEntityManager();
  141. bs = (BlogService) Singleton.getInstance(BlogService.class);
  142. count = bs.getDisscussCount(new Long(value), em);
  143. disscussMap.put(value, count);
  144. }else{
  145. count = disscussMap.get(value);
  146. }
  147. }catch(Exception ex){
  148. ex.printStackTrace();
  149. }finally{
  150. if(em != null && em.isOpen()){
  151. em.close();
  152. }
  153. em = null;
  154. bs = null;
  155. return count;
  156. }
  157. }
  158. }