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