Update of /var/cvs/src/org/mmbase/framework
In directory james.mmbase.org:/tmp/cvs-serv646

Modified Files:
        BasicComponent.java 
Log Message:
that 'autodefining' parameters is implicit if no parameters defined, can be 
very confusing. Defined and implemented 'automaticParameters' attribute on 
renderer elements


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


Index: BasicComponent.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/BasicComponent.java,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- BasicComponent.java 28 Jul 2008 15:52:17 -0000      1.47
+++ BasicComponent.java 8 Aug 2008 08:53:30 -0000       1.48
@@ -24,7 +24,7 @@
  * components, and may be requested several blocks.
  *
  * @author Michiel Meeuwissen
- * @version $Id: BasicComponent.java,v 1.47 2008/07/28 15:52:17 michiel Exp $
+ * @version $Id: BasicComponent.java,v 1.48 2008/08/08 08:53:30 michiel Exp $
  * @since MMBase-1.9
  */
 public class BasicComponent implements Component {
@@ -173,6 +173,19 @@
         }
     }
 
+    private void addParameters(Element rendererElement, Block b) {
+        Parameter[] params = Parameter.readArrayFromXml(rendererElement);
+        boolean automatic = 
rendererElement.getAttribute("automaticParameters").equals("true");
+        if (params.length == 0 && automatic) {
+            // if addParameters function never called, it behaves with 
'AutoDefinedParameters'.
+        } else {
+            if (automatic) {
+                log.warn("Ignoring that automaticParameters, because 
parameters were explictely defined");
+            }
+            b.addParameters(params);
+        }
+    }
+
     private Renderer getRenderer(String name, Element block, Block b) {
         NodeList renderElements = block.getElementsByTagName(name);
         log.debug("Number of [" + name + "] elements: " + 
renderElements.getLength());
@@ -193,10 +206,8 @@
                     return null;
                 }
             }
-            Parameter[] params = Parameter.readArrayFromXml(renderElement);
-            if (params.length > 0) { // a bit to simple, how can you 
explicitely make a renderer parameter-less now?
-                b.addParameters(params);
-            }
+            addParameters(renderElement, b);
+
             if (renderer == null) {
                 renderer = subRenderer;
             } else {
@@ -230,10 +241,8 @@
                 return null;
             }
         }
-        Parameter[] params = Parameter.readArrayFromXml(processorElement);
-        if (params.length > 0) { // a bit to simple, how can you explicitely 
make a processor parameter-less now?
-            b.addParameters(params);
-        }
+        addParameters(processorElement, b);
+
         return processor;
 
     }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to