Author: nbubna
Date: Fri Mar 30 15:03:54 2007
New Revision: 524291

URL: http://svn.apache.org/viewvc?view=rev&rev=524291
Log:
add combine() method for mergine toolboxes

Modified:
    
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Toolbox.java

Modified: 
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Toolbox.java
URL: 
http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Toolbox.java?view=diff&rev=524291&r1=524290&r2=524291
==============================================================================
--- 
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Toolbox.java
 (original)
+++ 
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Toolbox.java
 Fri Mar 30 15:03:54 2007
@@ -35,7 +35,7 @@
 public class Toolbox
 {
     private Map<String,ToolInfo> infoMap;
-    private Map properties;
+    private Map<String,Object> properties;
     private Map<String,Object> cache;
 
     public Toolbox(Map<String,ToolInfo> toolInfo)
@@ -148,6 +148,22 @@
         }
         // then return a copy of the cache
         return new HashMap<String,Object>(this.cache);
+    }
+
+    /**
+     * Returns a new [EMAIL PROTECTED] Toolbox} that is a combination of this
+     * toolbox with one or more specified [EMAIL PROTECTED] Toolbox}es.
+     */
+    public Toolbox combine(Toolbox... toolboxes)
+    {
+        Map<String,ToolInfo> info = new HashMap<String,ToolInfo>(this.infoMap);
+        Map<String,Object> props = new HashMap<String,Object>(properties);
+        for (Toolbox toolbox : toolboxes)
+        {
+            info.putAll(toolbox.infoMap);
+            props.putAll(toolbox.properties);
+        }
+        return new Toolbox(info, props);
     }
 
 }


Reply via email to