Update of
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util
In directory james.mmbase.org:/tmp/cvs-serv5409
Modified Files:
Tag: b1_5
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.3
retrieving revision 1.3.2.1
diff -u -b -r1.3 -r1.3.2.1
--- NewsletterBounceUtil.java 4 Aug 2008 03:09:21 -0000 1.3
+++ NewsletterBounceUtil.java 22 Oct 2008 06:06:37 -0000 1.3.2.1
@@ -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,58 +23,80 @@
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;
}
public static int getTotalCount() {
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
NodeList bounces = SearchUtil.findNodeList(cloud, "newsletterbounce");
- if(bounces != null) {
+ if (bounces != null) {
return bounces.size();
}
return (0);
}
public static List<NewsletterBounce> convertNodeListToList(NodeList
bounceNodes) {
- if(bounceNodes == null || bounceNodes.size() <1){
+ if (bounceNodes == null || bounceNodes.size() < 1) {
return null;
}
List<NewsletterBounce> bounces = new ArrayList<NewsletterBounce>();
- for(int i = 0 ; i < bounceNodes.size() ; i++) {
+ for (int i = 0; i < bounceNodes.size(); i++) {
Node bounceNode = bounceNodes.getNode(i);
- if(bounceNode == null){
+ if (bounceNode == null) {
continue;
}
NewsletterBounce bounce = new NewsletterBounce();
- copyProperties(bounceNode,bounce);
+ copyProperties(bounceNode, bounce);
bounces.add(bounce);
}
return bounces;
}
- public static void copyProperties(Node srcBounceNode,NewsletterBounce
desBounce){
+ public static void copyProperties(Node srcBounceNode, NewsletterBounce
desBounce) {
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
desBounce.setId(srcBounceNode.getNumber());
desBounce.setNewsletterId(srcBounceNode.getIntValue("newsletter"));
desBounce.setUserId(srcBounceNode.getIntValue("userid"));
- if(srcBounceNode.getIntValue("newsletter") > 0){
+ if (srcBounceNode.getIntValue("newsletter") > 0) {
Node publicationNode =
cloud.getNode(srcBounceNode.getIntValue("newsletter"));
desBounce.setNewsLetterTitle(publicationNode.getStringValue("title"));
}
- if(srcBounceNode.getIntValue("userid") > 0 ){
+ if (srcBounceNode.getIntValue("userid") > 0) {
String userName =
CommunityModuleAdapter.getUserNameByAuthenticationId(srcBounceNode.getIntValue("userid"));
- if(userName != null){
+ if (userName != null) {
desBounce.setUserName(userName);
}
}
@@ -83,11 +106,11 @@
}
- public static NewsletterBounce getNewsletterBounce(int number){
+ public static NewsletterBounce getNewsletterBounce(int number) {
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
Node bounceNode = cloud.getNode(number);
NewsletterBounce bounce = new NewsletterBounce();
- copyProperties(bounceNode,bounce);
+ copyProperties(bounceNode, bounce);
return bounce;
}
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs