Update of /var/cvs/contributions/didactor2/src/core/java/nl/didactor/functions
In directory james.mmbase.org:/tmp/cvs-serv22555/functions

Modified Files:
        PeopleClassFunction.java 
Log Message:
various fixes


See also: 
http://cvs.mmbase.org/viewcvs/contributions/didactor2/src/core/java/nl/didactor/functions


Index: PeopleClassFunction.java
===================================================================
RCS file: 
/var/cvs/contributions/didactor2/src/core/java/nl/didactor/functions/PeopleClassFunction.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- PeopleClassFunction.java    3 Aug 2007 18:31:47 -0000       1.4
+++ PeopleClassFunction.java    5 Feb 2008 15:05:36 -0000       1.5
@@ -10,7 +10,7 @@
 /**
  * Some didactor specific Node functions (implemented as 'bean')
  * @author Michiel Meeuwissen
- * @version $Id: PeopleClassFunction.java,v 1.4 2007/08/03 18:31:47 michiel 
Exp $
+ * @version $Id: PeopleClassFunction.java,v 1.5 2008/02/05 15:05:36 michiel 
Exp $
  */
 public class PeopleClassFunction {
     protected final static Logger log = 
Logging.getLoggerInstance(PeopleClassFunction.class);
@@ -39,9 +39,34 @@
         NodeList foundClasses = classes.getList(query);
         Node claz;
         if (foundClasses.size() > 1) {
-            // select the class which is online.
-            log.warn("more classes related! for node " + node.getNumber());
-            claz = foundClasses.getNode(0);
+            log.debug("more classes related! for node " + node.getNumber());
+            claz = null;
+            try {
+                Date now = 
org.mmbase.util.DynamicDate.eval(org.mmbase.util.DynamicDate.getInstance("tohour"));
+                NodeIterator ni = foundClasses.nodeIterator();
+                CLASS:
+                while (ni.hasNext()) {
+                    claz = ni.nextNode();
+                    log.debug("considering " + claz);
+                    NodeList mmevents = claz.getRelatedNodes("mmevents");
+                    NodeIterator ei = mmevents.nodeIterator();
+                    if (ei.hasNext()) {
+                        Node event = ei.nextNode();
+                        if (event.getDateValue("start").before(now)) {
+                            log.debug(" " + claz + " was started so using this 
one");
+                            break CLASS;
+                        } else {
+                            log.debug(event.getDateValue("start") + " is after 
" + now);
+                        }
+                    } else {
+                        log.debug("No mmevents coupled to " + claz);
+                    }
+                }
+            } catch (org.mmbase.util.dateparser.ParseException pe) {
+                // could  not happen
+                log.error(pe);
+            }
+
         } else if (foundClasses.size() == 1) {
             claz = foundClasses.getNode(0);
         } else {
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to