Author: michiel
Date: 2010-05-18 18:42:43 +0200 (Tue, 18 May 2010)
New Revision: 42232

Added:
   mmbase/trunk/bridge/src/main/java/org/mmbase/core/util/
   mmbase/trunk/bridge/src/main/java/org/mmbase/core/util/DataTypeSetter.java
Modified:
   
mmbase/trunk/bridge/src/main/java/org/mmbase/util/xml/AbstractBuilderReader.java
   
mmbase/trunk/bridge/src/main/java/org/mmbase/util/xml/ParentBuilderReader.java
Log:
MMB-1959

Added: 
mmbase/trunk/bridge/src/main/java/org/mmbase/core/util/DataTypeSetter.java
===================================================================
--- mmbase/trunk/bridge/src/main/java/org/mmbase/core/util/DataTypeSetter.java  
                        (rev 0)
+++ mmbase/trunk/bridge/src/main/java/org/mmbase/core/util/DataTypeSetter.java  
2010-05-18 16:42:43 UTC (rev 42232)
@@ -0,0 +1,50 @@
+/*
+
+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.core.util;
+
+import org.mmbase.bridge.*;
+import org.mmbase.datatypes.*;
+import org.mmbase.core.AbstractField;
+
+
+
+/**
+ * Wraps a Field. It can and is extended to make some other modifications to 
the field once the datatype is determined.
+ */
+
+public class  DataTypeSetter  {
+    private int type = -1;
+    private int listItemType = -1;
+    protected AbstractField field;
+    public DataTypeSetter(AbstractField field) {
+        this.field = field;
+    }
+    public void set(DataType dt) {
+        field.setDataType(dt);
+    }
+    public AbstractField getField() {
+        return field;
+    }
+    public int getType() {
+        return type == -1 ? field.getType() : type;
+    }
+    public int getListItemType() {
+        return listItemType == -1 ? field.getListItemType() : listItemType;
+    }
+    public void setType(int t) {
+        type = t;
+    }
+    public void setListItemType(int t) {
+        listItemType = t;
+    }
+
+}
+
+


Property changes on: 
mmbase/trunk/bridge/src/main/java/org/mmbase/core/util/DataTypeSetter.java
___________________________________________________________________
Name: svn:keywords
   + Id

Modified: 
mmbase/trunk/bridge/src/main/java/org/mmbase/util/xml/AbstractBuilderReader.java
===================================================================
--- 
mmbase/trunk/bridge/src/main/java/org/mmbase/util/xml/AbstractBuilderReader.java
    2010-05-18 16:30:52 UTC (rev 42231)
+++ 
mmbase/trunk/bridge/src/main/java/org/mmbase/util/xml/AbstractBuilderReader.java
    2010-05-18 16:42:43 UTC (rev 42232)
@@ -18,6 +18,7 @@
 import org.xml.sax.InputSource;
 import org.mmbase.bridge.Field;
 import org.mmbase.core.AbstractField;
+import org.mmbase.core.util.DataTypeSetter;
 import org.mmbase.core.event.*;
 import org.mmbase.datatypes.*;
 import org.mmbase.datatypes.util.xml.DataTypeReader;
@@ -411,7 +412,7 @@
 
 
 
-    protected void decodeDataTypeLater(final Fields.DataTypeSetter setter,
+    protected void decodeDataTypeLater(final DataTypeSetter setter,
                                        final String builder,
                                        final DataTypeCollector collector,
                                        final String fieldName,
@@ -440,7 +441,7 @@
      * @param forceInstance If true, it will never return <code>null</code>, 
but will return (a clone) of the DataType associated with the database type.
      * @since MMBase-1.8
      */
-    protected void decodeDataType(final Fields.DataTypeSetter setter,
+    protected void decodeDataType(final DataTypeSetter setter,
                                   final String builder,
                                   final DataTypeCollector collector,
                                   final String fieldName,
@@ -607,26 +608,6 @@
 
 
 
-        // state - default peristent
-        int state = Field.STATE_PERSISTENT;
-        if (!"".equals(fieldState)) { state = Fields.getState(fieldState); }
-        if (state != def.getState()) def.setState(state);
-
-
-        boolean readOnly = false;
-        if ("".equals(fieldReadOnly)) {
-            readOnly = state == Field.STATE_SYSTEM || state == 
Field.STATE_SYSTEM_VIRTUAL;
-        } else {
-            readOnly = "true".equalsIgnoreCase(fieldReadOnly);
-        }
-
-        if (def.isReadOnly() != readOnly) {
-            def.setReadOnly(readOnly);
-        }
-    }
-
-
-
     protected abstract Map<String, String> getParentProperties();
 
     /**

Modified: 
mmbase/trunk/bridge/src/main/java/org/mmbase/util/xml/ParentBuilderReader.java
===================================================================
--- 
mmbase/trunk/bridge/src/main/java/org/mmbase/util/xml/ParentBuilderReader.java  
    2010-05-18 16:30:52 UTC (rev 42231)
+++ 
mmbase/trunk/bridge/src/main/java/org/mmbase/util/xml/ParentBuilderReader.java  
    2010-05-18 16:42:43 UTC (rev 42232)
@@ -12,7 +12,7 @@
 
 import org.mmbase.datatypes.DataType;
 import org.mmbase.datatypes.Constants;
-import org.mmbase.core.util.Fields;
+import org.mmbase.core.util.DataTypeSetter;
 import org.mmbase.util.xml.AbstractBuilderReader;
 import org.mmbase.bridge.mock.MockField;
 import org.mmbase.bridge.util.NodeManagerDescription;
@@ -120,7 +120,7 @@
                 final Element dbtype = getElementByPath(field, 
"field.db.type");
 
                 final MockField newField = new MockField(fieldName, null, 
Constants.DATATYPE_UNKNOWN);
-                Fields.DataTypeSetter setter = new 
Fields.DataTypeSetter(newField) {
+                DataTypeSetter setter = new DataTypeSetter(newField) {
                         @Override
                         public void set(DataType dt) {
                             super.set(dt);

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

Reply via email to