NVelocity.Http.Tool
Class XMLToolboxManager

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:configurable through an XML-based configuration fileassembles a set of view tools (the toolbox) on requestsupports any class with a public constructor without parameters to be used as a view toolsupports adding primitive data values to the context(String,Number,Boolean)ConfigurationThe toolbox manager is configured through an XML-based configuration file. The configuration file is passed to the {@link #load(java.io.InputStream input)} method. The required format is shown in the following example: <?xml version="1.0"?> <toolbox> <tool> <key>toolLoader</key> <class>org.apache.velocity.tools.tools.ToolLoader</class> </tool> <tool> <key>math</key> <class>org.apache.velocity.tools.tools.MathTool</class> </tool> <data type="Number"> <key>luckynumber</key> <value>1.37</class> </data> <data type="String"> <key>greeting</key> <value>Hello World!</class> </data> </toolbox>

Field Summary
string ATTRIBUTE_TYPE
string BASE_NODE
string ELEMENT_CLASS
string ELEMENT_DATA
string ELEMENT_KEY
string ELEMENT_TOOL
string ELEMENT_VALUE

Constructor Summary
XMLToolboxManager()
         Default constructor

Method Summary
void AddTool(NVelocity.Tool.IToolInfo info)
NVelocity.Http.Context.ToolboxContext getToolboxContext(object initData)
void load(System.IO.Stream input)
         Reads an XML document from an {@link InputStream} using dom4j 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)>
void log(string s)
         Default implementation logs messages to system out.
NVelocity.Tool.IToolInfo readDataInfo(System.Xml.XmlElement e)
NVelocity.Tool.IToolInfo readToolInfo(System.Xml.XmlElement e)

Methods inherited from class System.Object
Equals, Finalize, GetHashCode, GetType, MemberwiseClone, ToString


Field Detail

ATTRIBUTE_TYPE

public string ATTRIBUTE_TYPE


BASE_NODE

public string BASE_NODE


ELEMENT_CLASS

public string ELEMENT_CLASS


ELEMENT_DATA

public string ELEMENT_DATA


ELEMENT_KEY

public string ELEMENT_KEY


ELEMENT_TOOL

public string ELEMENT_TOOL


ELEMENT_VALUE

public string ELEMENT_VALUE

Constructor Detail

XMLToolboxManager

public XMLToolboxManager()

Default constructor

Method Detail

AddTool

public void AddTool(NVelocity.Tool.IToolInfo info)


getToolboxContext

public NVelocity.Http.Context.ToolboxContext getToolboxContext(object initData)


load

public void load(System.IO.Stream input)

Reads an XML document from an {@link InputStream} using dom4j 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

log

protected internal void log(string s)

Default implementation logs messages to system out.


readDataInfo

protected internal NVelocity.Tool.IToolInfo readDataInfo(System.Xml.XmlElement e)


readToolInfo

protected internal NVelocity.Tool.IToolInfo readToolInfo(System.Xml.XmlElement e)