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

Modified Files:
        BasicDataType.java DataType.java 
Log Message:
MMB-1560, made it possible to configure 'handlers' for datatypes


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


Index: BasicDataType.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/datatypes/BasicDataType.java,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -b -r1.88 -r1.89
--- BasicDataType.java  9 Jul 2008 22:12:51 -0000       1.88
+++ BasicDataType.java  15 Jul 2008 19:41:00 -0000      1.89
@@ -12,7 +12,9 @@
 
 import java.io.*;
 import java.util.*;
+import java.util.concurrent.*;
 
+import org.mmbase.datatypes.handlers.Handler;
 import org.mmbase.bridge.*;
 import org.mmbase.bridge.util.Queries;
 import org.mmbase.core.AbstractDescriptor;
@@ -38,7 +40,7 @@
  * @author Pierre van Rooden
  * @author Michiel Meeuwissen
  * @since  MMBase-1.8
- * @version $Id: BasicDataType.java,v 1.88 2008/07/09 22:12:51 michiel Exp $
+ * @version $Id: BasicDataType.java,v 1.89 2008/07/15 19:41:00 michiel Exp $
  */
 
 public class BasicDataType<C> extends AbstractDescriptor implements 
DataType<C>, Cloneable, Comparable<DataType<C>>, Descriptor {
@@ -67,6 +69,8 @@
     private Processor[]     getProcessors;
     private Processor[]     setProcessors;
 
+    private Map<String, Handler> handlers = new ConcurrentHashMap<String, 
Handler>();
+
     private Element xml = null;
 
     /**
@@ -152,6 +156,7 @@
         edit();
         inheritProperties(origin);
         inheritRestrictions(origin);
+        handlers.putAll(origin.handlers);
     }
 
     /**
@@ -348,6 +353,7 @@
     /**
      * [EMAIL PROTECTED]
      */
+
     public C getDefaultValue(Locale locale, Cloud cloud, Field field) {
         if (defaultValue == null) return null;
         C res =  cast(defaultValue, null, null);
@@ -442,6 +448,7 @@
      */
     public void finish(Object owner) {
         this.owner = owner;
+        handlers = Collections.unmodifiableMap(handlers);
     }
 
     /**
@@ -697,8 +704,12 @@
 
     }
 
-    public org.mmbase.datatypes.handlers.Handler getHandler(String mimeType) {
-        throw new UnsupportedOperationException("Not yet ready");
+    public Handler getHandler(String mimeType) {
+        return handlers.get(mimeType);
+    }
+
+    public Map<String, Handler> getHandlers() {
+        return handlers;
     }
 
     public int compareTo(DataType<C> a) {


Index: DataType.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/datatypes/DataType.java,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -b -r1.68 -r1.69
--- DataType.java       9 Jul 2008 22:12:51 -0000       1.68
+++ DataType.java       15 Jul 2008 19:41:00 -0000      1.69
@@ -15,6 +15,7 @@
 
 import org.mmbase.bridge.*;
 import org.mmbase.datatypes.processors.*;
+import org.mmbase.datatypes.handlers.Handler;
 import org.mmbase.util.*;
 
 /**
@@ -32,7 +33,7 @@
  * @author Pierre van Rooden
  * @author Michiel Meeuwissen
  * @since  MMBase-1.8
- * @version $Id: DataType.java,v 1.68 2008/07/09 22:12:51 michiel Exp $
+ * @version $Id: DataType.java,v 1.69 2008/07/15 19:41:00 michiel Exp $
  * @param <C> Class this DataType
  */
 
@@ -373,7 +374,12 @@
     /**
      * @since MMBase-1.9.1
      */
-    public org.mmbase.datatypes.handlers.Handler getHandler(String mimeType);
+    public Handler getHandler(String mimeType);
+    /**
+     * @since MMBase-1.9.1
+     */
+    public Map<String, Handler> getHandlers();
+
 
     /**
      * A restriction controls (one aspect of) the acceptable values of a 
DataType. A DataType generally has several restrictions.
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to