Update of
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl
In directory
james.mmbase.org:/tmp/cvs-serv16798/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl
Modified Files:
NewsletterCAOImpl.java NewsletterPublicationCAOImpl.java
NewsletterSubscriptionCAOImpl.java
Log Message:
CMSC-818 basic function implement,move service initial to spring.
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-818
Index: NewsletterCAOImpl.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl/NewsletterCAOImpl.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- NewsletterCAOImpl.java 3 May 2008 15:08:45 -0000 1.11
+++ NewsletterCAOImpl.java 5 May 2008 02:40:11 -0000 1.12
@@ -1,25 +1,32 @@
package com.finalist.newsletter.cao.impl;
-import java.util.Iterator;
-import java.util.List;
-
-import org.mmbase.bridge.Cloud;
-import org.mmbase.bridge.Node;
-import org.mmbase.bridge.NodeList;
-import org.mmbase.bridge.NodeQuery;
+import com.finalist.newsletter.cao.NewsletterCAO;
+import com.finalist.newsletter.cao.AbstractCAO;
+import com.finalist.newsletter.cao.util.NlUtil;
+import com.finalist.newsletter.domain.Newsletter;
+import com.finalist.newsletter.domain.Term;
+import org.mmbase.bridge.*;
+import org.mmbase.bridge.util.SearchUtil;
+import org.mmbase.storage.search.AggregatedField;
import org.mmbase.storage.search.Step;
+import org.mmbase.storage.search.ResultBuilder;
+import org.mmbase.storage.search.Constraint;
+import org.mmbase.storage.search.implementation.BasicAggregatedField;
+import org.mmbase.storage.search.implementation.BasicSearchQuery;
+import org.mmbase.storage.search.implementation.database.BasicQueryHandler;
import org.mmbase.util.logging.Logger;
import org.mmbase.util.logging.Logging;
+import org.mmbase.module.core.MMObjectBuilder;
+import org.mmbase.module.core.MMBase;
+import org.mmbase.module.corebuilders.FieldDefs;
+import org.mmbase.core.CoreField;
+import org.apache.commons.lang.StringUtils;
-import com.finalist.newsletter.cao.util.NlUtil;
-
-import com.finalist.newsletter.cao.NewsletterCAO;
-import com.finalist.newsletter.domain.Newsletter;
-import com.finalist.newsletter.domain.Term;
+import java.util.Iterator;
+import java.util.List;
-public class NewsletterCAOImpl implements NewsletterCAO {
+public class NewsletterCAOImpl extends AbstractCAO implements NewsletterCAO {
private static Logger log =
Logging.getLoggerInstance(NewsletterCAOImpl.class.getName());
- private Cloud cloud;
public NewsletterCAOImpl() {
}
@@ -28,14 +35,40 @@
this.cloud = cloud;
}
- public List<Newsletter> getAllNewsletters() {
+ public List<Term> getALLTerm() {
+ NodeQuery query = cloud.createNodeQuery();
+ Step step = query.addStep(cloud.getNodeManager("term"));
+ query.setNodeStep(step);
+ NodeList list = query.getList();
+ return list;
+ }
+
+ public List<Newsletter> getNewsletterByConstraint(String property, String
constraintType, String value) {
NodeQuery query = cloud.createNodeQuery();
- Step step = query.addStep(cloud.getNodeManager("newsletter"));
+ NodeManager nodeManager = cloud.getNodeManager("newsletter");
+ Step step = query.addStep(nodeManager);
query.setNodeStep(step);
+ if (StringUtils.isNotBlank(property)) {
+ if (constraintType.equals("like")) {
+ SearchUtil.addLikeConstraint(query,
nodeManager.getField(property), value);
+ }
+ }
NodeList list = query.getList();
return NlUtil.convertFromNodeList(list);
}
+ public int getNewsletterIdBySubscription(int id) {
+ log.debug("Get newsletter by subsription "+id);
+ Node subscriptionNode = cloud.getNode(id);
+ List<Node> nodes = subscriptionNode.getRelatedNodes("newsletter");
+
+ if(nodes.size()>0){
+ return nodes.get(0).getNumber();
+ }else{
+ return -1;
+ }
+ }
+
public Newsletter getNewsletterById(int id) {
Node newsletterNode = cloud.getNode(id);
Newsletter newsletter = new Newsletter();
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.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- NewsletterPublicationCAOImpl.java 29 Apr 2008 01:37:04 -0000 1.6
+++ NewsletterPublicationCAOImpl.java 5 May 2008 02:40:11 -0000 1.7
@@ -20,6 +20,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
+import java.util.HashSet;
public class NewsletterPublicationCAOImpl implements NewsletterPublicationCAO {
@@ -100,6 +101,37 @@
return relatedNewsletters.get(0).getNumber();
}
+ public List<Publication> getAllPublications() {
+ NodeQuery query = cloud.createNodeQuery();
+ Step step = query.addStep(cloud.getNodeManager("newsletterpublication"));
+ query.setNodeStep(step);
+ NodeList list = query.getList();
+ return list;
+ }
+
+ public List<Publication> getPublicationsByNewsletter(int id,
Publication.STATUS status) {
+ Node newsletterNode = cloud.getNode(id);
+ List<Node> publicationNodes =
newsletterNode.getRelatedNodes("newsletterpublication");
+
+ Set<Publication> publications = new HashSet<Publication>();
+
+ for(Node publicationNode:publicationNodes){
+
if(null==status||status.toString().equals(publicationNode.getStringValue("status"))){
+ publications.add(convertFromNode(publicationNode));
+ }
+ }
+
+ log.debug(String.format("Get %s publications of newsletter %s in %s
status",publications.size(),id,status));
+ return new ArrayList(publications);
+ }
+
+ private Publication convertFromNode(Node node){
+ Publication publication = new Publication();
+ publication.setId(node.getNumber());
+ return publication;
+ }
+
+
protected String getNewsletterPath(Node newsletterPublicationNode) {
return NavigationUtil.getPathToRootString(newsletterPublicationNode,
true);
}
Index: NewsletterSubscriptionCAOImpl.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl/NewsletterSubscriptionCAOImpl.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- NewsletterSubscriptionCAOImpl.java 3 May 2008 14:40:59 -0000 1.16
+++ NewsletterSubscriptionCAOImpl.java 5 May 2008 02:40:11 -0000 1.17
@@ -1,37 +1,25 @@
package com.finalist.newsletter.cao.impl;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
+import com.finalist.newsletter.cao.NewsletterSubscriptionCAO;
+import com.finalist.newsletter.cao.AbstractCAO;
+import com.finalist.newsletter.domain.Newsletter;
+import com.finalist.newsletter.domain.Subscription;
+import static com.finalist.newsletter.domain.Subscription.STATUS;
+import com.finalist.newsletter.domain.Term;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.mmbase.bridge.Cloud;
-import org.mmbase.bridge.Field;
-import org.mmbase.bridge.Node;
-import org.mmbase.bridge.NodeManager;
-import org.mmbase.bridge.NodeQuery;
-import org.mmbase.bridge.Query;
-import org.mmbase.bridge.RelationManager;
+import org.mmbase.bridge.*;
import org.mmbase.bridge.util.SearchUtil;
import org.mmbase.storage.search.Constraint;
-import org.mmbase.storage.search.RelationStep;
import org.mmbase.storage.search.Step;
-import com.finalist.newsletter.cao.NewsletterSubscriptionCAO;
-import com.finalist.newsletter.domain.Subscription;
-import com.finalist.newsletter.domain.Term;
-import com.finalist.newsletter.domain.Newsletter;
-import com.finalist.newsletter.services.CommunityModuleAdapter;
-import static com.finalist.newsletter.domain.Subscription.STATUS;
+import static com.finalist.newsletter.util.NewsletterSubscriptionUtil.*;
+import java.util.*;
-public class NewsletterSubscriptionCAOImpl implements
NewsletterSubscriptionCAO {
+public class NewsletterSubscriptionCAOImpl extends AbstractCAO implements
NewsletterSubscriptionCAO {
private static Log log =
LogFactory.getLog(NewsletterSubscriptionCAOImpl.class);
- private Cloud cloud;
public NewsletterSubscriptionCAOImpl() {
}
@@ -198,15 +186,7 @@
return subscribers;
}
- private Subscription convertFromNode(Node node) {
- Subscription subscription = new Subscription();
- subscription.setId(node.getIntValue("number"));
- subscription.setMimeType(node.getStringValue("format"));
-
subscription.setStatus(Subscription.STATUS.valueOf(node.getStringValue("status")));
-
subscription.setSubscriber(CommunityModuleAdapter.getUserById(node.getStringValue("subscriber")));
- subscription.setSubscriberId(node.getStringValue("subscriber"));
- return subscription;
- }
+
public void createSubscription(int userId, int newsletterId) {
log.debug("Create subscription user:" + userId + " newsletter:" +
newsletterId);
@@ -262,4 +242,14 @@
return subs;
}
+
+ public List<Node> getAllSubscriptions() {
+
+ NodeQuery query = cloud.createNodeQuery();
+ Step step = query.addStep(cloud.getNodeManager("subscriptionrecord"));
+ query.setNodeStep(step);
+ List<Node> list = query.getList();
+
+ return list;
+ }
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs