You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by nb...@apache.org on 2007/03/31 00:03:54 UTC

svn commit: r524291 - /velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Toolbox.java

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 {@link Toolbox} that is a combination of this
+     * toolbox with one or more specified {@link 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);
     }
 
 }