Update of /var/cvs/src/org/mmbase/datatypes/handlers
In directory james.mmbase.org:/tmp/cvs-serv19140

Modified Files:
        AbstractHandler.java AbstractRequest.java Request.java 
Log Message:
  MMB-1560


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/datatypes/handlers
See also: http://www.mmbase.org/jira/browse/MMB-1560


Index: AbstractHandler.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/datatypes/handlers/AbstractHandler.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- AbstractHandler.java        28 Jul 2008 16:47:31 -0000      1.1
+++ AbstractHandler.java        17 Apr 2009 15:43:39 -0000      1.2
@@ -27,7 +27,7 @@
  * post and things like that.
  *
  * @author Michiel Meeuwissen
- * @version $Id: AbstractHandler.java,v 1.1 2008/07/28 16:47:31 michiel Exp $
+ * @version $Id: AbstractHandler.java,v 1.2 2009/04/17 15:43:39 michiel Exp $
  * @since MMBase-1.9.1
  */
 
@@ -129,8 +129,10 @@
             return null;
         }
 
+    }
 
-
+    protected void setValue(Node node, String fieldName, Object value) {
+        node.setValue(fieldName, value);
     }
 
     public C check(Request request, Node node, Field field, boolean errors) {
@@ -139,7 +141,20 @@
 
 
     public boolean set(Request request, Node node, Field field) {
-        throw new UnsupportedOperationException();
+        String fieldName = field.getName();
+        Object fieldValue = getFieldValue(request, node, field, false);
+        if (interpretEmptyAsNull(field) && "".equals(fieldValue)) fieldValue = 
null;
+        Object oldValue = node.getValue(fieldName);
+        if (fieldValue == null ? oldValue == null : 
fieldValue.equals(oldValue)) {
+            return false;
+        }  else {
+            if ("".equals(fieldValue) && interpretEmptyAsNull(field)) {
+                setValue(node, fieldName,  null);
+            } else {
+                setValue(node, fieldName,  fieldValue);
+            }
+            return true;
+        }
     }
     
 


Index: AbstractRequest.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/datatypes/handlers/AbstractRequest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- AbstractRequest.java        28 Jul 2008 16:47:31 -0000      1.1
+++ AbstractRequest.java        17 Apr 2009 15:43:39 -0000      1.2
@@ -17,7 +17,7 @@
 /**
  *
  * @author Michiel Meeuwissen
- * @version $Id: AbstractRequest.java,v 1.1 2008/07/28 16:47:31 michiel Exp $
+ * @version $Id: AbstractRequest.java,v 1.2 2009/04/17 15:43:39 michiel Exp $
  * @since MMBase-1.9.1
  */
 


Index: Request.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/datatypes/handlers/Request.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- Request.java        28 Jul 2008 16:47:31 -0000      1.3
+++ Request.java        17 Apr 2009 15:43:39 -0000      1.4
@@ -17,7 +17,7 @@
  * This generalizes  one rendition of a form.
  *
  * @author Michiel Meeuwissen
- * @version $Id: Request.java,v 1.3 2008/07/28 16:47:31 michiel Exp $
+ * @version $Id: Request.java,v 1.4 2009/04/17 15:43:39 michiel Exp $
  * @since MMBase-1.9.1
  */
 
@@ -35,6 +35,7 @@
     Cloud getCloud();
 
     java.util.Locale getLocale();
+
     /**
      *
      */
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to