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

Modified Files:
        BasicDataType.java 
Log Message:
Made sure that name and description are also not any more modifyable if the 
datatype is 'finished'


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/datatypes


Index: BasicDataType.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/datatypes/BasicDataType.java,v
retrieving revision 1.107
retrieving revision 1.108
diff -u -b -r1.107 -r1.108
--- BasicDataType.java  27 Apr 2009 12:13:44 -0000      1.107
+++ BasicDataType.java  27 Apr 2009 17:19:20 -0000      1.108
@@ -40,7 +40,7 @@
  * @author Pierre van Rooden
  * @author Michiel Meeuwissen
  * @since  MMBase-1.8
- * @version $Id: BasicDataType.java,v 1.107 2009/04/27 12:13:44 michiel Exp $
+ * @version $Id: BasicDataType.java,v 1.108 2009/04/27 17:19:20 michiel Exp $
  */
 
 public class BasicDataType<C> extends AbstractDescriptor implements 
DataType<C>, Comparable<DataType<C>>, Descriptor {
@@ -72,7 +72,7 @@
     private Processor[]     getProcessors;
     private Processor[]     setProcessors;
 
-    private Map<String, Handler> handlers = new ConcurrentHashMap<String, 
Handler>();
+    private Map<String, Handler<?>> handlers = new ConcurrentHashMap<String, 
Handler<?>>();
 
     private Element xml = null;
 
@@ -145,7 +145,7 @@
         commitProcessor       = (CommitProcessor) in.readObject();
         getProcessors         = (Processor[]) in.readObject();
         setProcessors         = (Processor[]) in.readObject();
-        handlers              = (Map<String, Handler>) in.readObject();
+        handlers              = (Map<String, Handler<?>>) in.readObject();
         //restrictions          = (Collection<Restriction<?>>) in.readObject();
         //unmodifiableRestrictions = 
Collections.unmodifiableCollection(restrictions);
     }
@@ -480,10 +480,12 @@
      * {...@inheritdoc}
      */
     public void finish(Object owner) {
-        this.owner = owner;
         if (! isFinished()) {
             handlers = Collections.unmodifiableMap(handlers);
+            description  = new ReadonlyLocalizedString(description);
+            guiName      = new ReadonlyLocalizedString(guiName);
         }
+        this.owner = owner;
     }
 
     /**
@@ -494,7 +496,9 @@
             if (this.owner != owner) {
                 throw new IllegalArgumentException("Cannot rewrite this 
datatype - specified owner is not correct");
             }
-            handlers = new ConcurrentHashMap<String, Handler>(handlers);
+            handlers     = new ConcurrentHashMap<String, Handler<?>>(handlers);
+            guiName     = guiName.clone();
+            description = description.clone();
             this.owner = null;
         }
         return this;
@@ -745,11 +749,11 @@
 
     }
 
-    public Handler getHandler(String mimeType) {
+    public Handler<?> getHandler(String mimeType) {
         return handlers.get(mimeType);
     }
 
-    public Map<String, Handler> getHandlers() {
+    public Map<String, Handler<?>> getHandlers() {
         return handlers;
     }
     public Collection<Restriction<?>> getRestrictions() {
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to