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

Modified Files:
      Tag: b1_5
        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: NewsletterSubscriptionHibernateService.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/services/impl/NewsletterSubscriptionHibernateService.java,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -u -b -r1.5 -r1.5.2.1
--- NewsletterSubscriptionHibernateService.java 23 Sep 2008 10:31:36 -0000      
1.5
+++ NewsletterSubscriptionHibernateService.java 6 Feb 2009 16:12:45 -0000       
1.5.2.1
@@ -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