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]