{@link FactoryConfiguration} subclass that simplifies the process ofconfiguration a {@link ToolboxFactory} in Java without the use of anxml or properties configuration file. Below is an example: EasyFactoryConfiguration config = new EasyFactoryConfiguration(); config.toolbox("request").property("locale", Locale.US) .tool(DateTool.class) .tool("myTool", MyTool.class); config.toolbox("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 {@link FactoryConfiguration} in Java: FactoryConfiguration factoryConfig = new FactoryConfiguration(); ToolboxConfiguration toolbox = new ToolboxConfiguration(); toolbox.setScope("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("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 {@link ToolboxFactory}with relatively little effort as well: ToolboxFactory factory = new ToolboxFactory(); factory.putProperty("request", "locale", Locale.US); factory.addToolInfo("request", new ToolInfo("date", DateTool.class)); factory.addToolInfo("request", new ToolInfo("render", ViewRenderTool.class)); ToolInfo info = new ToolInfo("number", NumberTool.class); info.setProperty("locale", Locale.FR); factory.addToolInfo("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. :)
|
|
|
|