public class EasyFactoryConfiguration extends FactoryConfiguration
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. :)
Modifier and Type | Class and Description |
---|---|
static class |
EasyFactoryConfiguration.EasyData |
class |
EasyFactoryConfiguration.EasyWrap<C extends Configuration> |
Constructor and Description |
---|
EasyFactoryConfiguration() |
EasyFactoryConfiguration(boolean includeDefaults) |
EasyFactoryConfiguration(boolean includeDefaults,
String source) |
addConfiguration, addData, addSource, addToolbox, createFactory, equals, getData, getData, getData, getSource, getSources, getToolbox, getToolboxes, hasData, hashCode, removeData, removeToolbox, setData, setSource, setToolboxes, toString, toString, validate
addChild, addConfiguration, appendChildren, getChild, getChildren, hasChildren, removeChild, setChildren
addConfiguration, addProperty, appendProperties, compareTo, getProperties, getProperty, getPropertyMap, hasProperties, removeProperty, removeProperty, setProperties, setProperty, setPropertyMap
public EasyFactoryConfiguration()
public EasyFactoryConfiguration(boolean includeDefaults)
includeDefaults
- Sets whether this instance should start with the
ConfigurationUtils.getDefaultTools()
configuration or not.public EasyFactoryConfiguration(boolean includeDefaults, String source)
includeDefaults
- Sets whether this instance should start with the
ConfigurationUtils.getDefaultTools()
configuration or not.source
- a string identify where this instance was created, or
something else useful to identify this instance during debuggingpublic EasyFactoryConfiguration addDefaultTools()
ConfigurationUtils.getDefaultTools()
configuration to this
the current configuration.public EasyFactoryConfiguration autoLoad()
public EasyFactoryConfiguration autoLoad(boolean includeDefaults)
public EasyFactoryConfiguration.EasyData data(String key, Object value)
public EasyFactoryConfiguration data(String key, String type, Object value)
protected EasyFactoryConfiguration data(String key, Data.Type type, Object value)
public EasyFactoryConfiguration string(String key, Object value)
public EasyFactoryConfiguration number(String key, Object value)
public EasyFactoryConfiguration bool(String key, Object value)
public EasyFactoryConfiguration.EasyWrap<ToolboxConfiguration> toolbox(String scope)
public EasyFactoryConfiguration.EasyWrap<ToolConfiguration> tool(String classname)
public EasyFactoryConfiguration.EasyWrap<ToolConfiguration> tool(Class clazz)
public EasyFactoryConfiguration.EasyWrap<ToolConfiguration> tool(String key, String classname)
public EasyFactoryConfiguration.EasyWrap<ToolConfiguration> tool(String key, Class clazz)
public EasyFactoryConfiguration property(String name, Object value)
Copyright © 2002–2021 The Apache Software Foundation. All rights reserved.