Update of 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/services/impl
In directory 
james.mmbase.org:/tmp/cvs-serv18251/portlets-newsletter/src/java/com/finalist/newsletter/services/impl

Modified Files:
        NewsletterSubscriptionServicesImpl.java 
        NewsletterSubscriptionHibernateService.java 
Log Message:
CMSC-1283 - Newsletter: improved code efficiency. Added count method. Added 
infix to fullname.


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/services/impl
See also: http://www.mmbase.org/jira/browse/CMSC-1283


Index: NewsletterSubscriptionServicesImpl.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/services/impl/NewsletterSubscriptionServicesImpl.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- NewsletterSubscriptionServicesImpl.java     10 Nov 2008 07:20:15 -0000      
1.33
+++ NewsletterSubscriptionServicesImpl.java     6 Feb 2009 16:12:52 -0000       
1.34
@@ -298,7 +298,7 @@
 
    public List<Person> getAllSubscribers(String name, String email) {
       List<Node> subscriptions = subscriptionCAO.getAllSubscriptions();
-      Set<Integer> authenticationIds = new HashSet();
+      Set<Integer> authenticationIds = new HashSet<Integer>();
       for (Node subscription : subscriptions) {
          int authId = subscription.getIntValue("subscriber");
             authenticationIds.add(authId);


Index: NewsletterSubscriptionHibernateService.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/services/impl/NewsletterSubscriptionHibernateService.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- NewsletterSubscriptionHibernateService.java 14 Oct 2008 11:22:44 -0000      
1.6
+++ NewsletterSubscriptionHibernateService.java 6 Feb 2009 16:12:52 -0000       
1.7
@@ -16,11 +16,25 @@
 
    @Transactional
    public List<Object[]> getSubscribersRelatedInfo(Set<Long> 
authenticationIds, String fullName, String userName, String email, boolean 
paging) {
-      PagingStatusHolder pagingHolder = PagingUtils.getStatusHolder();
 
-      StringBuffer strb = new StringBuffer(
-               "select person.firstName, person.lastName, person.email 
,person.authenticationId, authentication1.userId"
-                        + " from people person, authentication authentication1 
" + "where person.authenticationId = authentication1.id");
+      Query query = executeSubscribersSearch(authenticationIds, fullName, 
userName, email, paging, false);
+
+      //Execute query
+      return query.list();
+   }
+
+   @Transactional
+   private Query executeSubscribersSearch(Set<Long> authenticationIds, String 
fullName, String userName, String email, boolean paging,
+          boolean onlyCount) {
+      PagingStatusHolder pagingHolder = PagingUtils.getStatusHolder();
+      StringBuilder strb = new StringBuilder();
+      if (onlyCount) {
+         strb.append("select count(*)");
+      }
+      else { 
+         strb.append("select person.firstName, person.infix, person.lastName, 
person.email, person.authenticationId, authentication1.userId");
+      }
+      strb.append(" from people person, authentication authentication1 " + 
"where person.authenticationId = authentication1.id");
       if (StringUtils.isNotBlank(fullName)) {
          String[] names = fullName.split(" ");
          if (names.length >= 2) {
@@ -63,7 +77,13 @@
          query.setFirstResult(pagingHolder.getOffset());
          query.setMaxResults(pagingHolder.getPageSize());
       }
+      return query;
+   }
 
-      return query.list();
+   @Transactional
+   public int getSubscribersRelatedInfoCount(Set<Long> authenticationIds, 
String fullName, String userName, String email, boolean paging) {
+      Query query = executeSubscribersSearch(authenticationIds, fullName, 
userName, email, paging, true);
+      return (Integer)(query.uniqueResult());
    }
+   
 }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to