Update of
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl
In directory
james.mmbase.org:/tmp/cvs-serv13384/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl
Modified Files:
NewsletterPublicationCAOImpl.java
Log Message:
CMSC-990 bug fix
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl
See also: http://www.mmbase.org/jira/browse/CMSC-990
Index: NewsletterPublicationCAOImpl.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl/NewsletterPublicationCAOImpl.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- NewsletterPublicationCAOImpl.java 28 Jul 2008 14:46:13 -0000 1.19
+++ NewsletterPublicationCAOImpl.java 29 Jul 2008 11:33:40 -0000 1.20
@@ -1,31 +1,5 @@
package com.finalist.newsletter.cao.impl;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.commons.lang.time.DateFormatUtils;
-import org.mmbase.bridge.Cloud;
-import org.mmbase.bridge.Field;
-import org.mmbase.bridge.Node;
-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 org.mmbase.storage.search.Constraint;
-import org.mmbase.storage.search.FieldCompareConstraint;
-import org.mmbase.storage.search.Step;
-import org.mmbase.storage.search.StepField;
-import org.mmbase.storage.search.implementation.BasicCompositeConstraint;
-import
org.mmbase.storage.search.implementation.BasicFieldValueBetweenConstraint;
-import org.mmbase.storage.search.implementation.BasicFieldValueConstraint;
-import org.mmbase.util.logging.Logger;
-import org.mmbase.util.logging.Logging;
-
import com.finalist.cmsc.beans.MMBaseNodeMapper;
import com.finalist.cmsc.navigation.NavigationUtil;
import com.finalist.cmsc.paging.PagingStatusHolder;
@@ -36,6 +10,16 @@
import com.finalist.newsletter.domain.Term;
import com.finalist.newsletter.util.NewsletterUtil;
import com.finalist.newsletter.util.POConvertUtils;
+import org.apache.commons.lang.time.DateFormatUtils;
+import org.mmbase.bridge.*;
+import org.mmbase.bridge.util.Queries;
+import org.mmbase.bridge.util.SearchUtil;
+import org.mmbase.storage.search.Constraint;
+import org.mmbase.storage.search.Step;
+import org.mmbase.util.logging.Logger;
+import org.mmbase.util.logging.Logging;
+
+import java.util.*;
public class NewsletterPublicationCAOImpl implements NewsletterPublicationCAO {
@@ -191,45 +175,27 @@
return publications;
}
- public List<Publication> getPublicationsByNewsletterAndPeriod(int
newsletterId, String title, String subject, Date startDate, Date endDate,
- boolean paging) {
- PagingStatusHolder pagingHolder = PagingUtils.getStatusHolder();
+ public List<Publication> getPublicationsByNewsletterAndPeriod(
+ int newsletterId, String title, String subject, Date startDate, Date
endDate, boolean paging) {
NodeManager manager =
cloud.getNodeManager("newsletterpublication");
Node newsletterNode = cloud.getNode(newsletterId);
+
NodeQuery nodeQuery =
SearchUtil.createRelatedNodeListQuery(newsletterNode, "newsletterpublication",
"related");
- Step step = nodeQuery.getNodeStep();
- StepField fieldSubject = nodeQuery.addField(step,
manager.getField("subject"));
- StepField fieldTitle = nodeQuery.addField(step,
manager.getField("title"));
- StepField fieldDate = nodeQuery.addField(step,
manager.getField("creationdate"));
-
- BasicFieldValueConstraint constraintTitle = new
BasicFieldValueConstraint(fieldTitle, "%" + title + "%");
- constraintTitle.setOperator(FieldCompareConstraint.LIKE);
- BasicFieldValueConstraint constraintSubject = new
BasicFieldValueConstraint(fieldSubject, "%" + subject + "%");
- constraintSubject.setOperator(FieldCompareConstraint.LIKE);
+ SearchUtil.addLikeConstraint(nodeQuery, manager.getField("subject"), "%"
+ subject + "%");
+ SearchUtil.addLikeConstraint(nodeQuery, manager.getField("title"), "%" +
title + "%");
- BasicCompositeConstraint constraints = new
BasicCompositeConstraint(2);
if (startDate != null) {
- BasicFieldValueBetweenConstraint constraintDate = new
BasicFieldValueBetweenConstraint(fieldDate, startDate, endDate);
- constraints.addChild(constraintDate);
- } else {
- BasicFieldValueConstraint constraintDate = new
BasicFieldValueConstraint(fieldDate, endDate);
- constraintDate.setOperator(FieldCompareConstraint.LESS);
- constraints.addChild(constraintDate);
- }
- constraints.addChild(constraintTitle);
- constraints.addChild(constraintSubject);
-
- nodeQuery.setConstraint(constraints);
- if (paging) {
- nodeQuery.setOffset(pagingHolder.getOffset());
- nodeQuery.setMaxNumber(pagingHolder.getPageSize());
- }
- Queries.addSortOrders(nodeQuery, pagingHolder.getSort(),
pagingHolder.getMMBaseDirection());
- List<Node> list = nodeQuery.getList();
- List<Publication> publications = convertPublicationsToMap(list);
- return publications;
+ SearchUtil.addDatetimeConstraint(nodeQuery,
manager.getField("creationdate"), startDate.getTime(), endDate.getTime());
+ }
+ else {
+ SearchUtil.addDatetimeConstraint(nodeQuery,
manager.getField("creationdate"), Long.decode("1"), endDate.getTime());
+ }
+
+ PagingUtils.setPagingAndSortingInformation(nodeQuery);
+
+ return convertPublicationsToMap(nodeQuery.getList());
}
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs