Class EasyFactoryConfiguration
java.lang.Object
org.apache.velocity.tools.config.Configuration
org.apache.velocity.tools.config.CompoundConfiguration<ToolboxConfiguration>
org.apache.velocity.tools.config.FactoryConfiguration
org.apache.velocity.tools.config.EasyFactoryConfiguration
- All Implemented Interfaces:
Comparable<Configuration>
FactoryConfiguration subclass that simplifies the process of
configuring a ToolboxFactory in Java without the use of an
xml or properties configuration file. Below is an example:
EasyFactoryConfiguration config = new EasyFactoryConfiguration();
config.toolbox(Scope.REQUEST).property("locale", Locale.US)
.tool(DateTool.class)
.tool("myTool", MyTool.class);
config.toolbox(Scope.APPLICATION)
.tool(NumberTool.class).property("locale", Locale.FR);
ToolboxFactory factory = config.createFactory();
Doing the above without this class would require the following to
create an equivalent FactoryConfiguration in Java:
FactoryConfiguration factoryConfig = new FactoryConfiguration();
ToolboxConfiguration toolbox = new ToolboxConfiguration();
toolbox.setScope(Scope.REQUEST);
toolbox.setProperty("locale", Locale.US);
ToolConfiguration tool = new ToolConfiguration();
tool.setClassname(DateTool.class.getName());
tool = new ToolConfiguration();
tool.setKey("myTool");
tool.setClassname(MyTool.class.getName());
toolbox.addTool(tool);
toolbox = new ToolboxConfiguration();
toolbox.setScope(Scope.APPLICATION);
tool = new ToolConfiguration();
tool.setClassname(NumberTool.class.getName());
tool.setProperty("locale", Locale.FR);
toolbox.addTool(tool);
factoryConfig.addToolbox(toolbox);
ToolboxFactory factory = factoryConfig.createFactory();
Of course, you could directly configure a ToolboxFactory
with relatively little effort as well:
ToolboxFactory factory = new ToolboxFactory();
factory.putProperty(Scope.REQUEST, "locale", Locale.US);
factory.addToolInfo(Scope.REQUEST, new ToolInfo("date", DateTool.class));
factory.addToolInfo(Scope.REQUEST, new ToolInfo("render", ViewRenderTool.class));
ToolInfo info = new ToolInfo("number", NumberTool.class);
info.setProperty("locale", Locale.FR);
factory.addToolInfo(Scope.APPLICATION, info);
But this is not reusable. Why does that matter? Well, it doesn't matter for application developers. But, if another framework wishes to provide a common VelocityTools configuration for application developers, this may come in handy. Or it may not. In any case, it was mildly fun to write. :)
- Version:
- $Id: EasyFactoryConfiguration.java 511959 2007-02-26 19:24:39Z nbubna $
- Author:
- Nathan Bubna
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classclass -
Constructor Summary
ConstructorsConstructorDescriptionEasyFactoryConfiguration(boolean includeDefaults) EasyFactoryConfiguration(boolean includeDefaults, String source) -
Method Summary
Modifier and TypeMethodDescriptionAdds theConfigurationUtils.getDefaultTools()configuration to this the current configuration.autoLoad()autoLoad(boolean includeDefaults) protected EasyFactoryConfigurationMethods inherited from class FactoryConfiguration
addConfiguration, addData, addSource, addToolbox, createFactory, equals, getData, getData, getData, getSource, getSources, getToolbox, getToolboxes, hasData, hashCode, removeData, removeToolbox, setData, setSource, setToolboxes, toString, toString, validateMethods inherited from class CompoundConfiguration
addChild, addChildren, addConfiguration, appendChildren, getChild, getChildren, hasChildren, removeChild, setChildrenMethods inherited from class Configuration
addConfiguration, addProperty, appendProperties, compareTo, getProperties, getProperty, getPropertyMap, hasProperties, removeProperty, removeProperty, setProperties, setProperty, setPropertyMap
-
Constructor Details
-
EasyFactoryConfiguration
public EasyFactoryConfiguration() -
EasyFactoryConfiguration
public EasyFactoryConfiguration(boolean includeDefaults) - Parameters:
includeDefaults- Sets whether this instance should start with theConfigurationUtils.getDefaultTools()configuration or not.
-
EasyFactoryConfiguration
- Parameters:
includeDefaults- Sets whether this instance should start with theConfigurationUtils.getDefaultTools()configuration or not.source- a string identify where this instance was created, or something else useful to identify this instance during debugging
-
-
Method Details
-
addDefaultTools
Adds theConfigurationUtils.getDefaultTools()configuration to this the current configuration.- Returns:
- new EasyFacotryConfiguration instance with all default tools
-
autoLoad
-
autoLoad
-
data
-
data
-
data
-
string
-
number
-
bool
-
toolbox
-
tool
-
tool
-
tool
-
tool
-
property
-