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

Reply via email to