org.apache.velocity.tools

## Class Toolbox

- java.lang.Object
- - org.apache.velocity.tools.Toolbox

All Implemented Interfaces:
  Serializable

    public class Toolbox
    extends Object
    implements Serializable

Instances of this class are typically created by a `ToolboxFactory` on a one-per-scope basis. So, for each application, there would be one application-scoped Toolbox from which you would retrieve tool instances, and for each request, there would be one request-scoped Toolbox. Of course, none of the above is enforced. There's no reason that you can't manually create a Toolbox or have multiple Toolboxes for each scope.

When a Toolbox creates a tool instance asked of it (see `get(java.lang.String)`), it will cache that instance for future requests.

Version:
  $Id: Toolbox.java 511959 2007-02-26 19:24:39Z nbubna $
Author:
  Nathan Bubna
See Also:
  Serialized Form

### Field Summary

Fields
`static String` `KEY` The key used to place instances in various scopes.

### Constructor Summary

Constructors
Constructor and Description
`Toolbox(Map<String,ToolInfo> toolInfo)`
`Toolbox(Map<String,ToolInfo> toolInfo, Map<String,Object> properties)`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected void` `cacheData(Map<String,Object> data)`
`Toolbox` `combine(Toolbox... toolboxes)` Returns a new `Toolbox` that is a combination of this Toolbox with one or more specified `Toolbox`es.
`Object` `get(String key)`
`Object` `get(String key, Map<String,Object> context)`
`Object` `get(String key, String path)`
`Object` `get(String key, String path, Map<String,Object> context)`
`Map<String,Object>` `getAll(Map<String,Object> context)`
`protected Object` `getFromCache(String key, String path)`
`protected Object` `getFromInfo(String key, String path, Map<String,Object> context)`
`Set<String>` `getKeys()`
`Map<String,Object>` `getProperties()`
`Map<String,Class>` `getToolClassMap()` Return a new `Map` link tools' keys to their `Class`es.
`protected boolean` `hasPermission(ToolInfo info, String path)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### KEY

    public static final String KEY

The key used to place instances in various scopes.

### Constructor Detail

#### Toolbox

    public Toolbox(Map<String,ToolInfo> toolInfo)

#### Toolbox

    public Toolbox(Map<String,ToolInfo> toolInfo,
                   Map<String,Object> properties)

### Method Detail

#### cacheData

    protected void cacheData(Map<String,Object> data)

#### getProperties

    public Map<String,Object> getProperties()

#### get

    public Object get(String key)

#### get

    public Object get(String key,
                      String path)

#### get

    public Object get(String key,
                      Map<String,Object> context)

#### get

    public Object get(String key,
                      String path,
                      Map<String,Object> context)

#### getFromCache

    protected Object getFromCache(String key,
                                  String path)

#### getFromInfo

    protected Object getFromInfo(String key,
                                 String path,
                                 Map<String,Object> context)

#### hasPermission

    protected boolean hasPermission(ToolInfo info,
                                    String path)

#### getKeys

    public Set<String> getKeys()

#### getToolClassMap

    public Map<String,Class> getToolClassMap()

Return a new `Map` link tools' keys to their `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.

Returns:
  a map of tools classes indexed by key

#### getAll

    public Map<String,Object> getAll(Map<String,Object> context)

#### combine

    public Toolbox combine(Toolbox... toolboxes)

Returns a new `Toolbox` that is a combination of this Toolbox with one or more specified `Toolbox`es. Neither this instance nor those specified are modified.

Parameters:
  `toolboxes` - Toolboxes to combine
Returns:
  the combined toolbox