Author: michiel
Date: 2010-08-09 09:07:17 +0200 (Mon, 09 Aug 2010)
New Revision: 43070

Added:
   didactor/trunk/components/assessment/src/main/java/org/
   didactor/trunk/components/assessment/src/main/java/org/mmbase/
   didactor/trunk/components/assessment/src/main/java/org/mmbase/datatypes/
   
didactor/trunk/components/assessment/src/main/java/org/mmbase/datatypes/processors/
   
didactor/trunk/components/assessment/src/main/java/org/mmbase/datatypes/processors/SetToDefaultIfNull.java
Modified:
   
didactor/trunk/components/assessment/src/main/config/builders/didactor_assessment/problems.xml
Log:


Modified: 
didactor/trunk/components/assessment/src/main/config/builders/didactor_assessment/problems.xml
===================================================================
--- 
didactor/trunk/components/assessment/src/main/config/builders/didactor_assessment/problems.xml
      2010-08-08 17:31:33 UTC (rev 43069)
+++ 
didactor/trunk/components/assessment/src/main/config/builders/didactor_assessment/problems.xml
      2010-08-09 07:07:17 UTC (rev 43070)
@@ -57,6 +57,7 @@
           </class>
         </setprocessor>
         <getprocessor>
+          <class name="org.mmbase.datatypes.processors.SetToDefaultIfNull" />
           <class name="org.mmbase.datatypes.processors.Related$Getter">
             <param name="type">problemtypes</param>
             <param name="role">related</param>

Added: 
didactor/trunk/components/assessment/src/main/java/org/mmbase/datatypes/processors/SetToDefaultIfNull.java
===================================================================
--- 
didactor/trunk/components/assessment/src/main/java/org/mmbase/datatypes/processors/SetToDefaultIfNull.java
                          (rev 0)
+++ 
didactor/trunk/components/assessment/src/main/java/org/mmbase/datatypes/processors/SetToDefaultIfNull.java
  2010-08-09 07:07:17 UTC (rev 43070)
@@ -0,0 +1,41 @@
+/*
+
+This software is OSI Certified Open Source Software.
+OSI Certified is a certification mark of the Open Source Initiative.
+
+The license (Mozilla version 1.0) can be read at the MMBase site.
+See http://www.MMBase.org/license
+
+*/
+package org.mmbase.datatypes.processors;
+
+import org.mmbase.bridge.*;
+import org.mmbase.util.logging.*;
+
+/**
+
+ * @author Michiel Meeuwissen
+ * @version $Id: Related.java 38784 2009-09-22 20:26:32Z andre $
+ */
+
+public class SetToDefaultIfNull implements Processor {
+
+    private static final Logger log = 
Logging.getLoggerInstance(SetToDefaultIfNull.class);
+
+    private static final long serialVersionUID = 1L;
+    @Override
+    public Object process(Node node, final Field field, final Object value) {
+        if (node.getValueWithoutProcess(field.getName()) == null) {
+            log.debug("Field " + field + " is null");
+            Object defaultValue = 
field.getDataType().getDefaultValue(node.getCloud().getLocale(), 
node.getCloud(), field);
+            log.debug("Default value " + defaultValue);
+            if (! node.mayWrite()) {
+                node = node.getCloud().getCloudContext().getCloud("mmbase", 
"class", null).getNode(node.getNumber());
+            }
+            node.setValue(field.getName(), defaultValue);
+            node.commit();
+            return node.getValue(field.getName());
+        }
+        return value;
+    }
+}

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to