Update of
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util
In directory james.mmbase.org:/tmp/cvs-serv13781/newsletter/util
Modified Files:
NewsletterUtil.java
Log Message:
CMSC-867,modify Newsletter Content Portlet.add getting term numbers by request
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-867
Index: NewsletterUtil.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util/NewsletterUtil.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- NewsletterUtil.java 29 Apr 2008 06:09:02 -0000 1.18
+++ NewsletterUtil.java 29 Apr 2008 07:16:49 -0000 1.19
@@ -208,16 +208,25 @@
}
return (null);
}
+ public static List<ContentElement> getArticlesByNewsletter(String
termNumbers, int offset, int elementsPerPage, String orderBy, String direction)
{
+ String[] numbers = termNumbers.split(",");
+ SortedSet<Integer> sort = new TreeSet<Integer>();
+ for (int i = 0; i < numbers.length; i++) {
+ sort.add(new Integer(numbers[i]));
+ }
+ if (sort.size() == 0) {
+ return (null);
+ }
+ return getArticles( offset, elementsPerPage, orderBy,
direction,sort);
+ }
public static List<ContentElement> getArticlesByNewsletter(int
newsletterNumber, int offset, int elementsPerPage, String orderBy, String
direction) {
if (newsletterNumber > 0) {
- List<ContentElement> articles = new ArrayList<ContentElement>();
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
Node newsletterNode = cloud.getNode(newsletterNumber);
-
NodeManager termNodeManager = cloud.getNodeManager("term");
NodeList terms = newsletterNode.getRelatedNodes(termNodeManager);
- NodeManager articleNodeManager = cloud.getNodeManager("article");
+
SortedSet<Integer> sort = new TreeSet<Integer>();
for (int i = 0; i < terms.size(); i++) {
Node term = terms.getNode(i);
@@ -226,6 +235,17 @@
if (sort.size() == 0) {
return (null);
}
+ return getArticles( offset, elementsPerPage, orderBy,
direction,sort);
+ }
+ return (null);
+ }
+
+ public static List<ContentElement> getArticles(int offset, int
elementsPerPage, String orderBy, String direction,SortedSet<Integer> sort) {
+ List<ContentElement> articles = new ArrayList<ContentElement>();
+ Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
+
+ NodeManager termNodeManager = cloud.getNodeManager("term");
+ NodeManager articleNodeManager = cloud.getNodeManager("article");
NodeQuery query = cloud.createNodeQuery();
Step parameterStep = query.addStep(articleNodeManager);
query.setNodeStep(parameterStep);
@@ -242,10 +262,33 @@
articles.add(element);
}
}
-
return (articles);
+
}
- return (null);
+ public static int countArticles(SortedSet<Integer> sort) {
+ Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
+
+ NodeManager termNodeManager = cloud.getNodeManager("term");
+ NodeManager articleNodeManager = cloud.getNodeManager("article");
+ NodeQuery query = cloud.createNodeQuery();
+ Step parameterStep = query.addStep(articleNodeManager);
+ query.setNodeStep(parameterStep);
+ query.addRelationStep(termNodeManager, null, null);
+ SearchUtil.addInConstraint(query, termNodeManager.getField("number"),
sort);
+
+ return Queries.count(query);
+ }
+ public static int countArticlesByNewsletter(String termNumbers) {
+
+ String[] numbers = termNumbers.split(",");
+ SortedSet<Integer> sort = new TreeSet<Integer>();
+ for (int i = 0; i < numbers.length; i++) {
+ sort.add(new Integer(numbers[i]));
+ }
+ if (sort.size() == 0) {
+ return (0);
+ }
+ return countArticles(sort);
}
public static int countArticlesByNewsletter(int newsletterNumber) {
@@ -255,24 +298,16 @@
NodeManager termNodeManager = cloud.getNodeManager("term");
NodeList terms = newsletterNode.getRelatedNodes(termNodeManager);
- NodeManager articleNodeManager = cloud.getNodeManager("article");
- Node term = null;
SortedSet<Integer> sort = new TreeSet<Integer>();
for (int i = 0; i < terms.size(); i++) {
- term = terms.getNode(i);
+ Node term = terms.getNode(i);
sort.add(new Integer(term.getNumber()));
}
if (sort.size() == 0) {
return (0);
}
- NodeQuery query = cloud.createNodeQuery();
- Step parameterStep = query.addStep(articleNodeManager);
- query.setNodeStep(parameterStep);
- query.addRelationStep(termNodeManager, null, null);
- SearchUtil.addInConstraint(query, termNodeManager.getField("number"),
sort);
-
// NodeQuery query =
Queries.createRelatedNodesQuery(term,articleNodeManager,null,null);
- return Queries.count(query);
+ return countArticles(sort);
}
return (0);
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs