You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by mc...@apache.org on 2008/04/12 22:13:04 UTC

svn commit: r647494 - in /incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core: DefaultExtensionPointRegistry.java ExtensionPointRegistry.java

Author: mcombellack
Date: Sat Apr 12 13:12:59 2008
New Revision: 647494

URL: http://svn.apache.org/viewvc?rev=647494&view=rev
Log:
Added checks for null parameters as passing in null would result in a NullPointerException. Updated code to throw IllegalArgumentException when null passed as paramters. Updated JavaDoc to reflect these changes

Modified:
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core/ExtensionPointRegistry.java

Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java?rev=647494&r1=647493&r2=647494&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java Sat Apr 12 13:12:59 2008
@@ -36,7 +36,7 @@
  * points. As the point of contact for all extension artifacts this registry
  * allows loaded extensions to find all other parts of the system and register
  * themselves appropriately.
- * 
+ *
  * @version $Rev$ $Date$
  */
 public class DefaultExtensionPointRegistry implements ExtensionPointRegistry {
@@ -45,10 +45,16 @@
     /**
      * Add an extension point to the registry. This default implementation
      * stores extensions against the interfaces that they implement.
-     * 
+     *
      * @param extensionPoint The instance of the extension point
+     *
+     * @throws IllegalArgumentException if extensionPoint is null
      */
     public void addExtensionPoint(Object extensionPoint) {
+        if (extensionPoint == null) {
+            throw new IllegalArgumentException("Cannot register null as an ExtensionPoint");
+        }
+
         Set<Class> interfaces = getAllInterfaces(extensionPoint.getClass());
         for (Class i : interfaces) {
             extensionPoints.put(i, extensionPoint);
@@ -73,14 +79,20 @@
         }
         return null;
     }
-    
+
     /**
      * Get the extension point by the interface that it implements
-     * 
+     *
      * @param extensionPointType The lookup key (extension point interface)
      * @return The instance of the extension point
+     *
+     * @throws IllegalArgumentException if extensionPointType is null
      */
     public <T> T getExtensionPoint(Class<T> extensionPointType) {
+        if (extensionPointType == null) {
+            throw new IllegalArgumentException("Cannot lookup ExtensionPoint of type null");
+        }
+
         Object extensionPoint = extensionPoints.get(extensionPointType);
         if (extensionPoint == null) {
             
@@ -130,10 +142,16 @@
 
     /**
      * Remove an extension point based on the interface that it implements
-     * 
+     *
      * @param extensionPoint The extension point to remove
+     *
+     * @throws IllegalArgumentException if extensionPoint is null
      */
     public void removeExtensionPoint(Object extensionPoint) {
+        if (extensionPoint == null) {
+            throw new IllegalArgumentException("Cannot remove null as an ExtensionPoint");
+        }
+
         Set<Class> interfaces = getAllInterfaces(extensionPoint.getClass());
         for (Class i : interfaces) {
             extensionPoints.remove(i);

Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core/ExtensionPointRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core/ExtensionPointRegistry.java?rev=647494&r1=647493&r2=647494&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core/ExtensionPointRegistry.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/core/ExtensionPointRegistry.java Sat Apr 12 13:12:59 2008
@@ -21,30 +21,36 @@
 
 
 /**
- * The registry for the Tuscany core extension points. As the point of contact 
- * for all extension artifacts this registry allows loaded extensions to find 
+ * The registry for the Tuscany core extension points. As the point of contact
+ * for all extension artifacts this registry allows loaded extensions to find
  * all other parts of the system and register themselves appropriately.
- * 
+ *
  * @version $Rev$ $Date$
  */
 public interface ExtensionPointRegistry {
-    
+
     /**
      * Add an extension point to the registry
      * @param extensionPoint The instance of the extension point
+     *
+     * @throws IllegalArgumentException if extensionPoint is null
      */
     void addExtensionPoint(Object extensionPoint);
-    
+
     /**
      * Get the extension point by the interface
      * @param extensionPointType The lookup key (extension point interface)
      * @return The instance of the extension point
+     *
+     * @throws IllegalArgumentException if extensionPointType is null
      */
     <T> T getExtensionPoint(Class<T> extensionPointType);
-    
+
     /**
      * Remove an extension point
      * @param extensionPoint The extension point to remove
+     *
+     * @throws IllegalArgumentException if extensionPoint is null
      */
     void removeExtensionPoint(Object extensionPoint);
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org