Update of
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util
In directory james.mmbase.org:/tmp/cvs-serv4659
Modified Files:
NewsletterBounceUtil.java
Log Message:
CMSC-1095, Newsletter Bounces list should be ordered,add newsletterSort when
bounceManager can't sort
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util
See also: http://www.mmbase.org/jira/browse/CMSC-1095
Index: NewsletterBounceUtil.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util/NewsletterBounceUtil.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- NewsletterBounceUtil.java 14 Oct 2008 11:22:44 -0000 1.4
+++ NewsletterBounceUtil.java 22 Oct 2008 05:32:07 -0000 1.5
@@ -1,7 +1,7 @@
package com.finalist.newsletter.util;
import java.util.ArrayList;
-import java.util.Date;
+import java.util.Collections;
import java.util.List;
import net.sf.mmapps.modules.cloudprovider.CloudProviderFactory;
@@ -13,6 +13,7 @@
import org.mmbase.bridge.NodeList;
import org.mmbase.bridge.NodeManager;
import org.mmbase.bridge.NodeQuery;
+import org.mmbase.bridge.util.Queries;
import org.mmbase.bridge.util.SearchUtil;
import com.finalist.newsletter.domain.NewsletterBounce;
@@ -22,15 +23,37 @@
private static Log log = LogFactory.getLog(NewsletterBounceUtil.class);
- public static List<NewsletterBounce> getBounceRecord(int offset, int
pageSize) {
+ public static List<NewsletterBounce> getBounceRecord(int offset, int
pageSize, String order, String direction) {
List<NewsletterBounce> bounces = new ArrayList<NewsletterBounce>();
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
NodeManager bounceManager = cloud.getNodeManager("newsletterbounce");
NodeQuery query = bounceManager.createQuery();
+ if (null == order || bounceManager.hasField(order)) {
query.setMaxNumber(pageSize);
query.setOffset(offset);
+ Queries.addSortOrders(query, order, direction);
+ }
NodeList bounceNodes = query.getList();
bounces = convertNodeListToList(bounceNodes);
+ if (null != order && !bounceManager.hasField(order)) {
+ bounces = nesletterSort(bounces, offset, pageSize, direction, order);
+ }
+ return bounces;
+ }
+
+ private static List<NewsletterBounce> nesletterSort(List<NewsletterBounce>
bounces, int offset, int pageSize,
+ String direction, String order) {
+ ComparisonUtil comparator = new ComparisonUtil();
+ comparator.setFields_user(new String[] { order });
+ Collections.sort(bounces, comparator);
+ if ("down".equals(direction)) {
+ Collections.reverse(bounces);
+ }
+ if (pageSize + offset < bounces.size()) {
+ bounces = bounces.subList(offset, pageSize + offset);
+ } else {
+ bounces = bounces.subList(offset, bounces.size());
+ }
return bounces;
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs