Update of /var/cvs/src/org/mmbase/bridge/util
In directory james.mmbase.org:/tmp/cvs-serv31557

Modified Files:
        DataTypeField.java 
Log Message:
added an extra contructor, which makes it possible to use this to wrap a field 
into a new field which only has a different datatyep


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/bridge/util


Index: DataTypeField.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/bridge/util/DataTypeField.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- DataTypeField.java  25 Apr 2008 15:41:10 -0000      1.4
+++ DataTypeField.java  25 Jul 2008 09:35:25 -0000      1.5
@@ -21,13 +21,14 @@
  * (itself). This also associates a Cloud object with the DataType.
  *
  * @author  Michiel Meeuwissen
- * @version $Id: DataTypeField.java,v 1.4 2008/04/25 15:41:10 nklasens Exp $
+ * @version $Id: DataTypeField.java,v 1.5 2008/07/25 09:35:25 michiel Exp $
  * @since   MMBase-1.8.2
  */
 
 public  class DataTypeField extends org.mmbase.core.AbstractField {
     protected final NodeManager nodeManager;
-    public DataTypeField(final Cloud cloud, final DataType dataType)  {
+    protected final Field field;
+    public DataTypeField(final Cloud cloud, final DataType<Object> dataType)  {
         super(dataType.getName(), dataType.getBaseType(), TYPE_UNKNOWN, 
Field.STATE_VIRTUAL, dataType);
         nodeManager = new AbstractNodeManager(cloud) {
                 private final Map<String, Field> fieldTypes = new 
HashMap<String, Field>();
@@ -39,6 +40,16 @@
                     return Collections.unmodifiableMap(fieldTypes);
                 }
             };
+        field = null;
+    }
+    /**
+     * This constructor only wraps the given field to have another datatype.
+     * @since MMBase-1.9
+     */
+    public DataTypeField(final Field field, final DataType<Object> dataType)  {
+        super(field.getName(), dataType.getBaseType(), field.getType(), 
field.getState(), dataType);
+        nodeManager = field.getNodeManager();
+        this.field = field;
     }
     @Override
     public NodeManager getNodeManager() {
@@ -47,27 +58,28 @@
 
     @Override
     public int getSearchPosition() {
-        return -1; // irrelevant, you cannot search
+        return field == null ? -1 : field.getSearchPosition();
     }
 
     @Override
     public int getListPosition() {
-        return -1; // irrelevant, you cannot do listings
+        return field == null ? -1 : field.getListPosition();
     }
 
     @Override
     public int getEditPosition() {
-        return 1;
+        return field == null ? 1 : field.getEditPosition();
     }
 
     @Override
     public int getStoragePosition() {
-        return -1; // irrelevant, not stored
+        return field == null ? -1 : field.getStoragePosition();
     }
 
     @Override
     public int getMaxLength() {
-        return Integer.MAX_VALUE; // not stored, so no such restriction
+        return field == null ? Integer.MAX_VALUE : // not stored, so no such 
restriction
+            field.getMaxLength();
     }
 
     @Override
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to