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]

Reply via email to