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

Modified Files:
        CopyBookMadeTest.java 
Log Message:
made it possible to link questions with (xml) learnblocks. This allows for less 
formal 'tests', which don't have to be formally assessed. 


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


Index: CopyBookMadeTest.java
===================================================================
RCS file: 
/var/cvs/contributions/didactor2/src/core/java/nl/didactor/functions/CopyBookMadeTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- CopyBookMadeTest.java       18 Jan 2008 12:22:58 -0000      1.2
+++ CopyBookMadeTest.java       7 Nov 2008 17:01:04 -0000       1.3
@@ -11,7 +11,7 @@
  * Retrieves a 'madetests' object for a certain tests and copybook objects.
  *
  * @author Michiel Meeuwissen
- * @version $Id: CopyBookMadeTest.java,v 1.2 2008/01/18 12:22:58 michiel Exp $
+ * @version $Id: CopyBookMadeTest.java,v 1.3 2008/11/07 17:01:04 michiel Exp $
  */
 public class CopyBookMadeTest {
     protected final static Logger log = 
Logging.getLoggerInstance(CopyBookMadeTest.class);
@@ -34,13 +34,37 @@
         clear = c;
     }
 
+    private static final List<String> NODEMANAGERS = new ArrayList<String>();
+    static {
+        NODEMANAGERS.add("tests");
+        NODEMANAGERS.add("learnblocks");
+    }
+
+    protected static SortedSet<Integer> getOTypes(Cloud cloud, boolean desc, 
List<String> names)  {
+        SortedSet<Integer> set = new TreeSet<Integer>();
+        Iterator<String> i = names.iterator();
+        while (i.hasNext()) {
+            NodeManager nm = cloud.getNodeManager(i.next());
+            set.add(nm.getNumber());
+            if (desc) {
+                NodeManagerIterator j = 
nm.getDescendants().nodeManagerIterator();
+                while (j.hasNext()) {
+                    set.add(j.nextNodeManager().getNumber());
+                }
+            }
+        }
+        return set;
+    }
+
 
     public Node madetest() {
         Cloud cloud = node.getCloud();
         NodeManager madeTests = cloud.getNodeManager("madetests");
         NodeQuery query = Queries.createRelatedNodesQuery(node, madeTests, 
"related", "destination");
-        Step testStep = query.addRelationStep(cloud.getNodeManager("tests"), 
"related", "source").getNext();
+        Step testStep = 
query.addRelationStep(cloud.getNodeManager("learnobjects"), "related", 
"source").getNext();
         Queries.addConstraint(query, 
query.createConstraint(query.createStepField(testStep, "number"), test));
+        Queries.addConstraint(query, 
query.createConstraint(query.createStepField(testStep, "otype"), 
getOTypes(cloud, true, NODEMANAGERS)));
+        query.addSortOrder(testStep, SortOrder.ASCENDING);
 
         NodeList found = madeTests.getList(query);
 
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to