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