Author: nbubna Date: Mon Sep 19 11:53:41 2005 New Revision: 290236 URL: http://svn.apache.org/viewcvs?rev=290236&view=rev Log: validate tool info before adding it (part of Henning's patch for Issue VELOCITY-375)
Modified: jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/XMLToolboxManager.java Modified: jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/XMLToolboxManager.java URL: http://svn.apache.org/viewcvs/jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/XMLToolboxManager.java?rev=290236&r1=290235&r2=290236&view=diff ============================================================================== --- jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/XMLToolboxManager.java (original) +++ jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/XMLToolboxManager.java Mon Sep 19 11:53:41 2005 @@ -73,8 +73,8 @@ * * @author <a href="mailto:[EMAIL PROTECTED]">Nathan Bubna</a> * @author <a href="mailto:[EMAIL PROTECTED]">Geir Magnusson Jr.</a> - * - * @version $Id: XMLToolboxManager.java,v 1.13 2004/11/11 06:26:27 nbubna Exp $ + * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a> + * @version $Id$ */ public class XMLToolboxManager implements ToolboxManager { @@ -98,19 +98,50 @@ // ------------------------------- ToolboxManager interface ------------ + public void addTool(ToolInfo info) { - if (info instanceof DataInfo) + if (validateToolInfo(info)) { - data.put(info.getKey(), info.getInstance(null)); + toolinfo.add(info); + LOG.info("Added "+info.getKey()+" ("+info.getClassname()+") to the toolbox."); } - else + } + + public void addData(ToolInfo info) + { + if (validateToolInfo(info)) { - toolinfo.add(info); + data.put(info.getKey(), info.getInstance(null)); } - LOG.info("Added "+info.getKey()+" ("+info.getClassname()+") to the toolbox."); } + /** + * Checks whether an object described by a ToolInfo passes + * some basic sanity checks. + * + * @param info A ToolInfo object + * + * @return true if the ToolInfo is valid + */ + protected boolean validateToolInfo(ToolInfo info) + { + if (info == null) + { + return false; + } + if (info.getKey() == null || info.getKey().length() == 0) + { + LOG.error("Tool has no key defined!"); + return false; + } + if (info.getClassname() == null) + { + LOG.error("Tool " + info.getKey() + " has no Class definition!"); + return false; + } + return true; + } /** * @deprecated Use getToolbox(Object) instead. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]