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