Author: michiel
Date: 2009-06-02 23:31:59 +0200 (Tue, 02 Jun 2009)
New Revision: 35581

Added:
   mmbase/trunk/src/org/mmbase/util/transformers/ProcessorCharTransformer.java
Modified:
   mmbase/trunk/src/org/mmbase/util/transformers/Transformers.java
Log:
Made it possible to use datatypes.Processor as Transformers

Added: 
mmbase/trunk/src/org/mmbase/util/transformers/ProcessorCharTransformer.java
===================================================================
--- mmbase/trunk/src/org/mmbase/util/transformers/ProcessorCharTransformer.java 
                        (rev 0)
+++ mmbase/trunk/src/org/mmbase/util/transformers/ProcessorCharTransformer.java 
2009-06-02 21:31:59 UTC (rev 35581)
@@ -0,0 +1,33 @@
+/*
+
+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.util.transformers;
+
+import org.mmbase.datatypes.processors.*;
+import org.mmbase.util.Casting;
+
+/**
+
+ *
+ * @author Michiel Meeuwissen
+ * @since MMBase-1.9.1
+ */
+
+public class ProcessorCharTransformer extends StringTransformer {
+    private final Processor wrapped;
+
+    public ProcessorCharTransformer(Processor p) {
+        wrapped = p;
+    }
+    public String transform(String r) {
+        if (r == null) return null;
+        return Casting.toString(wrapped.process(null, null, 
Casting.toString(r)));
+    }
+
+}

Modified: mmbase/trunk/src/org/mmbase/util/transformers/Transformers.java
===================================================================
--- mmbase/trunk/src/org/mmbase/util/transformers/Transformers.java     
2009-06-02 20:00:02 UTC (rev 35580)
+++ mmbase/trunk/src/org/mmbase/util/transformers/Transformers.java     
2009-06-02 21:31:59 UTC (rev 35581)
@@ -11,6 +11,7 @@
 
 import java.util.Iterator;
 import org.mmbase.util.functions.Parameters;
+import org.mmbase.datatypes.processors.Processor;
 import org.mmbase.util.logging.Logger;
 import org.mmbase.util.logging.Logging;
 
@@ -48,8 +49,9 @@
         }
 
         if (! Transformer.class.isAssignableFrom(clazz) &&
-            ! ParameterizedTransformerFactory.class.isAssignableFrom(clazz)) {
-            log.error("The class " + clazz + " specified for "  + errorId + " 
is not a Transformer");
+            ! ParameterizedTransformerFactory.class.isAssignableFrom(clazz) &&
+            ! Processor.class.isAssignableFrom(clazz)) {
+            log.error("The class " + clazz + " specified for "  + errorId + " 
is not a Transformer (or easily converted to that)");
             return null;
         }
         Object t;
@@ -69,6 +71,8 @@
             }
             config = "";
             t = pt.createTransformer(params);
+        } else if (t instanceof Processor) {
+            t = new ProcessorCharTransformer((Processor) t);
         }
         CharTransformer ct;
 

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

Reply via email to