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 2008/04/11 18:07:02 UTC

svn commit: r647205 - in /velocity/tools/trunk/src/main/java/org/apache/velocity/tools: ToolContext.java Toolbox.java

Author: nbubna
Date: Fri Apr 11 09:07:00 2008
New Revision: 647205

URL: http://svn.apache.org/viewvc?rev=647205&view=rev
Log:
make it easier to find out what tools are available without instantiating all of them

Modified:
    velocity/tools/trunk/src/main/java/org/apache/velocity/tools/ToolContext.java
    velocity/tools/trunk/src/main/java/org/apache/velocity/tools/Toolbox.java

Modified: velocity/tools/trunk/src/main/java/org/apache/velocity/tools/ToolContext.java
URL: http://svn.apache.org/viewvc/velocity/tools/trunk/src/main/java/org/apache/velocity/tools/ToolContext.java?rev=647205&r1=647204&r2=647205&view=diff
==============================================================================
--- velocity/tools/trunk/src/main/java/org/apache/velocity/tools/ToolContext.java (original)
+++ velocity/tools/trunk/src/main/java/org/apache/velocity/tools/ToolContext.java Fri Apr 11 09:07:00 2008
@@ -123,6 +123,20 @@
         return aggregate;
     }
 
+    /**
+     * Gets a map of keys to classes for all available tools.
+     * This does not include any data nor any local context values.
+     */
+    public Map<String,Class> getToolClassMap()
+    {
+        Map<String,Class> toolClasses = new HashMap<String,Class>();
+        for (Toolbox toolbox : toolboxes)
+        {
+            toolClasses.putAll(toolbox.getToolClassMap());
+        }
+        return toolClasses;
+    }
+
     protected List<Toolbox> getToolboxes()
     {
         return this.toolboxes;
@@ -171,6 +185,7 @@
         }
         return null;
     }
+        
 
     public Set<String> keySet()
     {

Modified: velocity/tools/trunk/src/main/java/org/apache/velocity/tools/Toolbox.java
URL: http://svn.apache.org/viewvc/velocity/tools/trunk/src/main/java/org/apache/velocity/tools/Toolbox.java?rev=647205&r1=647204&r2=647205&view=diff
==============================================================================
--- velocity/tools/trunk/src/main/java/org/apache/velocity/tools/Toolbox.java (original)
+++ velocity/tools/trunk/src/main/java/org/apache/velocity/tools/Toolbox.java Fri Apr 11 09:07:00 2008
@@ -160,8 +160,28 @@
         // add keys for all available tools
         Set<String> keys = new HashSet<String>(infoMap.keySet());
         // be sure to add cache, which holds data keys
-        keys.addAll(cache.keySet());
+        if (cache != null)
+        {
+            keys.addAll(cache.keySet());
+        }
         return keys;
+    }
+
+    /**
+     * Return a new {@link Map} link tools' keys to their {@link Class}es.
+     * This will not instantiate any tools, it is merely informational.
+     * This will not include the keys for any cached data. Note that inclusion
+     * in this map does NOT mean that all these tools will be available for
+     * all requests, as this map ignores all path restrictions on the tools.
+     */
+    public Map<String,Class> getToolClassMap()
+    {
+        Map<String,Class> classMap = new HashMap<String,Class>(infoMap.size());
+        for (Map.Entry<String,ToolInfo> entry : infoMap.entrySet())
+        {
+            classMap.put(entry.getKey(), entry.getValue().getToolClass());
+        }
+        return classMap;
     }
 
     public Map<String,Object> getAll(Map<String,Object> context)