Update of
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl
In directory
james.mmbase.org:/tmp/cvs-serv5529/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl
Modified Files:
NewsletterSubscriptionCAOImpl.java NewsletterCAOImpl.java
Log Message:
CMSC-818 modify cao.
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: NewsletterSubscriptionCAOImpl.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/cao/impl/NewsletterSubscriptionCAOImpl.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- NewsletterSubscriptionCAOImpl.java 21 Apr 2008 09:51:03 -0000 1.10
+++ NewsletterSubscriptionCAOImpl.java 22 Apr 2008 02:58:21 -0000 1.11
@@ -47,7 +47,7 @@
this.cloud = cloud;
}
- public List<Newsletter> getAllNewsletter() {
+ /*public List<Newsletter> getAllNewsletter() {
CloudProvider provider =
CloudProviderFactory.getCloudProvider();
cloud = provider.getCloud();
List<Newsletter> list = new ArrayList<Newsletter>();
@@ -72,8 +72,8 @@
}
return list;
}
-
- public Newsletter getNewsletterById(int id) {
+*/
+ /*public Newsletter getNewsletterById(int id) {
CloudProvider provider =
CloudProviderFactory.getCloudProvider();
cloud = provider.getCloud();
System.out.println("Newsletterid=" + id);
@@ -87,10 +87,11 @@
newsletter =
NewsletterSubscriptionUtil.convertNodeListtoTagList(
taglist, newsletter);
return newsletter;
- }
+ }*/
- public List<Newsletter> getUserSubscriptionList(int userId) {
- List<Newsletter> list = new ArrayList<Newsletter>();
+ /*public List<Subscription> getUserSubscriptionList(int userId) {
+ List<Subscription> list = new ArrayList<Subscription>();
+ Subscription subscription = new Subscription();
Newsletter newsletter = new Newsletter();
List<Node> resluts = new ArrayList<Node>();
@@ -100,11 +101,9 @@
for (int i = 0; i < resluts.size(); i++) {
Node node = nodes.next();
String status = node.getStringValue("status");
- newsletter.setStatus(status);
- Date interval = node.getDateValue("interval");
- newsletter.setInterval(interval);
+
subscription.setStatus(Subscription.STATUS.valueOf(status));
String format = node.getStringValue("format");
- newsletter.setFormat(format);
+ subscription.setMimeType(format);
NodeList newsletters =
node.getRelatedNodes("newsletter");
Iterator<Node> newsletterIterator =
newsletters.iterator();
@@ -112,6 +111,7 @@
String title = newsletterIterator.next()
.getStringValue("title");
newsletter.setTitle(title);
+ subscription.setNewsletter(newsletter);
}
NodeManager tagManager = cloud.getNodeManager("tag");
@@ -126,17 +126,16 @@
selectTag.setId(selectTagNode.getNumber());
selectTag.setSubscription(true);
tagList.add(selectTag);
- newsletter.setTags(tagList);
+ subscription.setTags(new HashSet(tagList));
}
- list.add(newsletter);
+ list.add(subscription);
}
return list;
- }
+ }*/
public List<Node> querySubcriptionByUser(int userId) {
CloudProvider provider =
CloudProviderFactory.getCloudProvider();
cloud = provider.getCloud();
- List<Node> results = null;
NodeManager recordManager =
cloud.getNodeManager("subscriptionrecord");
NodeQuery query = cloud.createNodeQuery();
String subscriber = "subscriber";
@@ -144,7 +143,6 @@
theStep = query.addStep(recordManager);
query.setNodeStep(theStep);
Field field = recordManager.getField(subscriber);
- String userIdString = String.valueOf(userId);
Constraint titleConstraint =
SearchUtil.createEqualConstraint(query,
field, userId);
@@ -152,56 +150,51 @@
return query.getList();
}
- public void addSubscriptionRecord(Newsletter newsletter, int userId) {
+ public void addSubscriptionRecord(Subscription subscription, int
userId) {
String nodeType = "subscriptionrecord";
NodeManager subscriptionrecordNodeManager = cloud
.getNodeManager(nodeType);
Node subscriptionrecordNode = subscriptionrecordNodeManager
.createNode();
subscriptionrecordNode.setIntValue("subscriber", userId);
- subscriptionrecordNode.setStringValue("status",
newsletter.getStatus());
- subscriptionrecordNode.setStringValue("format",
newsletter.getFormat());
+ subscriptionrecordNode.setStringValue("status",
subscription.getStatus().toString());
+ subscriptionrecordNode.setStringValue("format",
subscription.getMimeType());
subscriptionrecordNode.commit();
// add Relation to newsletter
- int nodeNumber = newsletter.getId();
+ int nodeNumber = subscription.getNewsletter().getId();
Node newsletternode = cloud.getNode(nodeNumber);
System.out.println("newsletternode=" +
newsletternode.getNumber());
RelationManager insrel =
cloud.getRelationManager("subscriptionrecord",
"newsletter", "newslettered");
subscriptionrecordNode.createRelation(newsletternode,
insrel).commit();
+ subscription.setId(subscriptionrecordNode.getNumber());
}
- public void modifySubscriptionStauts(Newsletter newsletter, int userId)
{
+ public void modifySubscriptionStauts(Subscription subscription) {
System.out.println("modifySubscriptionStauts");
- String stauts = newsletter.getStatus();
- int newsletterId = newsletter.getId();
- List<Node> records = getSubscriptionrecord(newsletterId,
userId);
- if (0 != records.size()) {
- Node record = records.get(0);
+ String stauts = subscription.getStatus().toString();
+ int recordId = subscription.getId();
+ Node record = cloud.getNode(recordId);
record.setStringValue("status", stauts);
record.commit();
- if ("unSubscription".equals(stauts)) {
+
+ if ("INACTIVE".equals(stauts)) {
record.deleteRelations("tagged");
}
- }
}
- public void modifySubscriptionFormat(Newsletter newsletter, int userId)
{
- int newsletterId = newsletter.getId();
- System.out
- .println("newsletterId=" + newsletterId +
";userId=" + userId);
- List<Node> records = getSubscriptionrecord(newsletterId,
userId);
- if (0 != records.size()) {
- Node record = records.get(0);
+ public void modifySubscriptionFormat(Subscription subscription) {
+ int recordId = subscription.getId();
+ Node record = cloud.getNode(recordId);
+
System.out.println("recordId=" + record);
- String format = newsletter.getFormat();
+ String format = subscription.getMimeType();
record.setStringValue("format", format);
record.commit();
}
- }
- public void modifySubscriptionInterval(Newsletter newsletter, int
userId) {
+ /*public void modifySubscriptionInterval(Newsletter newsletter, int
userId) {
int newsletterId = newsletter.getId();
List<Node> records = getSubscriptionrecord(newsletterId,
userId);
if (0 != records.size()) {
@@ -210,9 +203,9 @@
record.setDateValue("interval", interval);
record.commit();
}
- }
+ }*/
- public List<Node> getSubscriptionrecord(int newsletterId, int userId) {
+ /*public List<Node> getSubscriptionrecord(int newsletterId, int userId)
{
// get subscriptionrecord
CloudProvider provider =
CloudProviderFactory.getCloudProvider();
cloud = provider.getCloud();
@@ -243,27 +236,23 @@
}
}
return results;
- }
+ }*/
- public void addSubscriptionTag(Newsletter newsletter, int userId, int
tagId) {
- int newsletterId = newsletter.getId();
- List<Node> records = getSubscriptionrecord(newsletterId,
userId);
- if (0 != records.size()) {
+ public void addSubscriptionTag(Subscription subscription,int tagId) {
+ int recordId = subscription.getId();
System.out.println("addSubscriptionTag");
- Node record = records.get(0);
+ Node record = cloud.getNode(recordId);
+
Node tag = cloud.getNode(tagId);
RelationManager insrel = cloud.getRelationManager(
"subscriptionrecord", "tag", "tagged");
record.createRelation(tag, insrel).commit();
}
- }
- public void removeSubscriptionTag(Newsletter newsletter, int userId,
- int tagId) {
- int newsletterId = newsletter.getId();
- List<Node> records = getSubscriptionrecord(newsletterId,
userId);
- if (0 != records.size()) {
- Node record = records.get(0);
+ public void removeSubscriptionTag(Subscription subscription,int tagId) {
+ int recordId = subscription.getId();
+ Node record = cloud.getNode(recordId);
+
List<Node> taglist = record.getRelatedNodes("tag");
Iterator taglistIt = taglist.iterator();
record.deleteRelations("tagged");
@@ -275,14 +264,12 @@
record.createRelation(tag,
insrel).commit();
}
}
-
- }
}
public Subscription getSubscription(int newsletterId, int userId) {
-
log.debug("getSubscriptionrecord that newsletterId=" +
newsletterId);
-
+ CloudProvider provider =
CloudProviderFactory.getCloudProvider();
+ cloud = provider.getCloud();
NodeManager recordManager =
cloud.getNodeManager("subscriptionrecord");
NodeManager newsletterManager =
cloud.getNodeManager("newsletter");
@@ -310,7 +297,7 @@
subscription.setId(subscriptionId);
subscription.setMimeType(subscriptionNode.getStringValue("subscriptionrecord.format"));
subscription.setStatus(Subscription.STATUS.valueOf(subscriptionNode.getStringValue("subscriptionrecord.status")));
-
+ log.debug("Status="+subscription.getStatus());
List<Node> tagList =
cloud.getNode(subscriptionId).getRelatedNodes("tag");
log.debug("tagList.size()="+tagList.size());
Iterator tagIt = tagList.iterator();
@@ -322,14 +309,12 @@
tag.setSubscription(true);
subscription.getTags().add(tag);
}
+ return subscription;
} else {
log.debug("Get subscription failed,user " + userId
+ " may not subscripbe " +
newsletterId);
return null;
}
-
- return subscription;
-
}
public List<Subscription> getSubscription(int newsletterId) {
@@ -344,9 +329,7 @@
it.remove();
}
}
-
return POConvertUtils.convertSubscriptions(records);
-
}
}
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.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- NewsletterCAOImpl.java 21 Apr 2008 09:51:03 -0000 1.4
+++ NewsletterCAOImpl.java 22 Apr 2008 02:58:21 -0000 1.5
@@ -1,53 +1,44 @@
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 net.sf.mmapps.modules.cloudprovider.CloudProvider;
+import net.sf.mmapps.modules.cloudprovider.CloudProviderFactory;
import org.mmbase.bridge.Cloud;
import org.mmbase.bridge.Node;
import org.mmbase.bridge.NodeList;
-import org.mmbase.bridge.NodeManager;
-import org.mmbase.bridge.NodeQuery;
import org.mmbase.bridge.Query;
-import org.mmbase.storage.search.Step;
-import org.mmbase.storage.search.StepField;
-import org.mmbase.storage.search.implementation.BasicFieldValueConstraint;
import com.finalist.newsletter.cao.NewsletterCAO;
-import com.finalist.newsletter.cao.util.NlUtil;
import com.finalist.newsletter.domain.Newsletter;
import com.finalist.newsletter.domain.Tag;
public class NewsletterCAOImpl implements NewsletterCAO {
-
private Cloud cloud;
- public NewsletterCAOImpl() {
- }
-
- public NewsletterCAOImpl(Cloud cloud) {
- super();
+ public void setCloud(Cloud cloud) {
this.cloud = cloud;
}
- public List<Newsletter> getAllNewsletters (){
-
- NodeManager manager = cloud.getNodeManager("newsletter");
- NodeQuery query = cloud.createNodeQuery();
- query.setNodeStep(query.addStep(manager));
- List<Node> nodelist = manager.getList(query);
-
- NlUtil nlUtil = new NlUtil();
- return nlUtil.convertFromNodeList(nodelist);
+ public List<Newsletter> getAllNewsletters() {
+ Query query = cloud.createQuery();
+ query.addStep(cloud.getNodeManager("newsletter"));
+ NodeList list = query.getList();
+ return list;
}
public Newsletter getNewsletterById(int id) {
+ CloudProvider provider = CloudProviderFactory.getCloudProvider();
+ cloud = provider.getCloud();
Node newsletterNode = cloud.getNode(id);
Newsletter newsletter = new Newsletter();
newsletter.setNumber(newsletterNode.getIntValue("number"));
newsletter.setTitle(newsletterNode.getStringValue("title"));
- List<Node> tagList = newsletterNode.getRelatedNodes();
+ List<Node> tagList = newsletterNode.getRelatedNodes("tag");
Iterator tagIt = tagList.iterator();
for(int i=0;i<tagList.size();i++){
Tag tag = new Tag();
@@ -60,4 +51,5 @@
return newsletter;
}
+
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs