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)