Author: nbubna
Date: Fri Apr 27 20:38:44 2007
New Revision: 533286
URL: http://svn.apache.org/viewvc?view=rev&rev=533286
Log:
- move support for common, non-servlet tool properties into ToolContext
- make better use of constants for keys
- add getToolbox() to ViewToolContext
Modified:
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolContext.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewContext.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewToolContext.java
Modified:
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolContext.java
URL:
http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolContext.java?view=diff&rev=533286&r1=533285&r2=533286
==============================================================================
---
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolContext.java
(original)
+++
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolContext.java
Fri Apr 27 20:38:44 2007
@@ -25,6 +25,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.context.Context;
/**
@@ -39,6 +40,9 @@
public class ToolContext implements Context
{
public static final String PATH_KEY = "requestPath";
+ public static final String CONTEXT_KEY = "velocityContext";
+ public static final String ENGINE_KEY = "velocityEngine";
+ public static final String LOG_KEY = "log";
private List<Toolbox> toolboxes;
// this is meant solely for tool setup,
@@ -47,6 +51,15 @@
// this is only for values added during use of this context
private Map<String,Object> localContext;
+ public ToolContext(VelocityEngine engine)
+ {
+ this(null, null);
+
+ // add the engine and log as common tool properties
+ putToolProperty(ENGINE_KEY, engine);
+ putToolProperty(LOG_KEY, engine.getLog());
+ }
+
public ToolContext(Map<String,Object> toolProps)
{
this(toolProps, null);
@@ -67,6 +80,8 @@
{
this.toolProps = new HashMap<String,Object>(8);
}
+ // add this as a common tool property
+ putToolProperty(CONTEXT_KEY, this);
toolboxes = new ArrayList<Toolbox>();
if (toolbox != null)
@@ -85,6 +100,11 @@
protected List<Toolbox> getToolboxes()
{
return this.toolboxes;
+ }
+
+ protected Map<String,Object> getToolProperties()
+ {
+ return this.toolProps;
}
public Object putToolProperty(String key, Object value)
Modified:
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewContext.java
URL:
http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewContext.java?view=diff&rev=533286&r1=533285&r2=533286
==============================================================================
---
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewContext.java
(original)
+++
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewContext.java
Fri Apr 27 20:38:44 2007
@@ -52,8 +52,11 @@
/** Key used for the HTTP session object. */
public static final String SESSION = "session";
- /** Key used for the servlet context object. */
+ /** Key used for the servlet context object in templates. */
public static final String APPLICATION = "application";
+
+ /** Key used for the servlet context object in tool properties. */
+ public static final String SERVLET_CONTEXT_KEY = "servletContext";
/** Default key used to store toolboxes in request/session/application
attributes. */
public static final String DEFAULT_TOOLBOX_KEY =
Modified:
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewToolContext.java
URL:
http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewToolContext.java?view=diff&rev=533286&r1=533285&r2=533286
==============================================================================
---
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewToolContext.java
(original)
+++
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewToolContext.java
Fri Apr 27 20:38:44 2007
@@ -80,7 +80,7 @@
HttpServletResponse response,
ServletContext application)
{
- super(null, null);
+ super(velocity);
this.velocity = velocity;
this.request = request;
@@ -94,14 +94,28 @@
protected void putToolProperties()
{
//TODO!! put these strings as constants somewhere!!
- putToolProperty("servletRequest", getRequest());
- putToolProperty("servletResponse", getResponse());
- putToolProperty("httpSession", getSession());
- putToolProperty("servletContext", getServletContext());
+ putToolProperty(REQUEST, getRequest());
+ putToolProperty(RESPONSE, getResponse());
+ putToolProperty(SESSION, getSession());
+ putToolProperty(SERVLET_CONTEXT_KEY, getServletContext());
putToolProperty(PATH_KEY, ServletUtils.getPath(getRequest()));
putToolProperty("velocityContext", getVelocityContext());
- putToolProperty("velocityEngine", getVelocityEngine());
- putToolProperty("log", getVelocityEngine().getLog());
+ }
+
+ /**
+ * Returns a [EMAIL PROTECTED] Map} of all tools available to this
+ * context. NOTE: this is not a cheap operation as it will
+ * request and initialize and instance of every available tool.
+ */
+ public Map<String,Object> getToolbox()
+ {
+ Map<String,Object> aggregate = new HashMap<String,Object>();
+ Map<String,Object> toolProps = getToolProperties();
+ for (Toolbox toolbox : getToolboxes())
+ {
+ aggregate.putAll(toolbox.getAll(toolProps));
+ }
+ return aggregate;
}
protected List<Toolbox> getToolboxes()