org.apache.velocity.tools.view
Class XMLToolboxManager

java.lang.Object
  extended byorg.apache.velocity.tools.view.XMLToolboxManager
All Implemented Interfaces:
ToolboxManager
Direct Known Subclasses:
ServletToolboxManager

public class XMLToolboxManager
extends java.lang.Object
implements ToolboxManager

A ToolboxManager for loading a toolbox from xml.

A toolbox manager is responsible for automatically filling the Velocity context with a set of view tools. This class provides the following features:

Configuration

The toolbox manager is configured through an XML-based configuration file. The configuration file is passed to the load(java.io.InputStream input) method. The format is shown in the following example:

 
 <?xml version="1.0"?>
 <toolbox>
   <tool>
      <key>date</key>
      <class>org.apache.velocity.tools.generic.DateTool</class>
   </tool>
   <data type="Number">
      <key>luckynumber</key>
      <value>1.37</value>
   </data>
   <data type="String">
      <key>greeting</key>
      <value>Hello World!</value>
   </data>
 </toolbox>    
 

Version:
$Id: XMLToolboxManager.html,v 1.7.2.1 2004/05/17 17:09:44 nbubna Exp $
Author:
Nathan Bubna, Geir Magnusson Jr.

Field Summary
private static org.apache.commons.digester.RuleSet ruleSet
           
private  java.util.Map toolbox
           
private  java.util.List toolinfo
           
 
Constructor Summary
XMLToolboxManager()
          Default constructor
 
Method Summary
 void addTool(ToolInfo info)
          Adds a tool to be managed
protected  org.apache.commons.digester.RuleSet getRuleSet()
          For subclassing convienence.
 ToolboxContext getToolboxContext(java.lang.Object initData)
          Creates a ToolboxContext from the tools and data in this manager.
 void load(java.io.InputStream input)
          Reads an XML document from an InputStream and sets up the toolbox from that.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

toolinfo

private java.util.List toolinfo

toolbox

private java.util.Map toolbox

ruleSet

private static org.apache.commons.digester.RuleSet ruleSet
Constructor Detail

XMLToolboxManager

public XMLToolboxManager()
Default constructor

Method Detail

addTool

public void addTool(ToolInfo info)
Description copied from interface: ToolboxManager
Adds a tool to be managed

Specified by:
addTool in interface ToolboxManager

getToolboxContext

public ToolboxContext getToolboxContext(java.lang.Object initData)
Description copied from interface: ToolboxManager
Creates a ToolboxContext from the tools and data in this manager. Tools that implement the ViewTool interface should be initialized using the given initData.

Specified by:
getToolboxContext in interface ToolboxManager
Parameters:
initData - data used to initialize ViewTools
Returns:
the created ToolboxContext

load

public void load(java.io.InputStream input)
          throws java.lang.Exception

Reads an XML document from an InputStream and sets up the toolbox from that.

The DTD for toolbox schema is:
  <?xml version="1.0"?>
  <!ELEMENT toolbox (tool*,data*)>
  <!ELEMENT tool    (key,class,#PCDATA)>
  <!ELEMENT data    (key,value)>
      <!ATTLIST data type (string|number|boolean) "string">
  <!ELEMENT key     (#CDATA)>
  <!ELEMENT class   (#CDATA)>
  <!ELEMENT value   (#CDATA)>
 

Parameters:
input - the InputStream to read from
Throws:
java.lang.Exception

getRuleSet

protected org.apache.commons.digester.RuleSet getRuleSet()
For subclassing convienence.

Since:
VelocityTools 1.1


Copyright (c) 2003 Apache Software Foundation