Package org.apache.velocity.tools.config
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 class
class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
-
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 EasyFactoryConfiguration
Methods inherited from class org.apache.velocity.tools.config.FactoryConfiguration
addConfiguration, addData, addSource, addToolbox, createFactory, equals, getData, getData, getData, getSource, getSources, getToolbox, getToolboxes, hasData, hashCode, removeData, removeToolbox, setData, setSource, setToolboxes, toString, toString, validate
Methods inherited from class org.apache.velocity.tools.config.CompoundConfiguration
addChild, addConfiguration, appendChildren, getChild, getChildren, hasChildren, removeChild, setChildren
Methods inherited from class org.apache.velocity.tools.config.Configuration
addConfiguration, addProperty, appendProperties, compareTo, getProperties, getProperty, getPropertyMap, hasProperties, removeProperty, removeProperty, setProperties, setProperty, setPropertyMap
-
Field Details
-
addedDefaults
private boolean addedDefaults -
toolbox
-
-
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. -
autoLoad
-
autoLoad
-
data
-
data
-
data
-
string
-
number
-
bool
-
toolbox
-
tool
-
tool
-
tool
-
tool
-
property
-