Author: jvelociter
Date: 2008-01-29 11:47:34 +0100 (Tue, 29 Jan 2008)
New Revision: 7149

Modified:
   
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/SpaceManagerException.java
   
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/SpaceManagerExtension.java
   
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerExtensionImpl.java
   
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
Log:
XPSM-3 preCreateSpace should allow to throw exception
Now the extension can abort the creation process sending an exception, so that 
its cause can be known ; instead of silently doing 
nothing.


Modified: 
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/SpaceManagerException.java
===================================================================
--- 
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/SpaceManagerException.java
        2008-01-29 02:30:21 UTC (rev 7148)
+++ 
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/SpaceManagerException.java
        2008-01-29 10:47:34 UTC (rev 7149)
@@ -33,6 +33,7 @@
     public static final int ERROR_SPACE_MANAGER_REQUIRES_MAILSENDER_PLUGIN = 
100006;
     public static final int ERROR_SPACE_SENDING_EMAIL_FAILED = 100007;
     public static final int ERROR_SPACE_CANNOT_FIND_EMAIL_ADDRESS = 100008;
+    public static final int ERROR_SPACE_CREATION_ABORTED_BY_EXTENSION = 100009;
     
     public static final int ERROR_VALIDATE_TITLE_TOO_SHORT = 100009;
     public static final int ERROR_VALIDATE_TITLE_TOO_LONG = 100010;

Modified: 
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/SpaceManagerExtension.java
===================================================================
--- 
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/SpaceManagerExtension.java
        2008-01-29 02:30:21 UTC (rev 7148)
+++ 
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/SpaceManagerExtension.java
        2008-01-29 10:47:34 UTC (rev 7149)
@@ -51,9 +51,9 @@
      *
      * @param spaceName
      * @param context
-     * @return If it returns true, it will continue with the space creation, 
otherwise it will abord it
+     * @throws SpaceManagerException when aborting the space creation process
      */
-       public boolean preCreateSpace(String spaceName, XWikiContext context);
+       public void preCreateSpace(String spaceName, XWikiContext context) 
throws SpaceManagerException;
        
        /**
      * API called after a space is created

Modified: 
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerExtensionImpl.java
===================================================================
--- 
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerExtensionImpl.java
   2008-01-29 02:30:21 UTC (rev 7148)
+++ 
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerExtensionImpl.java
   2008-01-29 10:47:34 UTC (rev 7149)
@@ -36,15 +36,10 @@
     }
 
     /**
-     * API called before the space in created
-     *
-     * @param spaceName
-     * @param context
-     * @return
+     * [EMAIL PROTECTED]
      */
-       public boolean preCreateSpace(String spaceName, XWikiContext context) {
+       public void preCreateSpace(String spaceName, XWikiContext context) 
throws SpaceManagerException {
                // @todo: actions done before the creation of the space
-               return true;
        }
        
        /**

Modified: 
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
===================================================================
--- 
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
    2008-01-29 02:30:21 UTC (rev 7148)
+++ 
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
    2008-01-29 10:47:34 UTC (rev 7149)
@@ -481,8 +481,12 @@
         Space newspace = newSpace(null, spaceTitle, true, context);
         
         //execute precreate actions
-        if( !getSpaceManagerExtension().preCreateSpace( 
newspace.getSpaceName(), context ) )
-               return null;
+        try {
+               getSpaceManagerExtension().preCreateSpace( 
newspace.getSpaceName(), context );
+               }
+        catch (SpaceManagerException e) {
+               throw new 
SpaceManagerException(SpaceManagerException.MODULE_PLUGIN_SPACEMANAGER, 
SpaceManagerException.ERROR_SPACE_CREATION_ABORTED_BY_EXTENSION, "Space 
creation aborted by extension", e);
+        }
         
         // Make sure we set the type
         newspace.setType(getSpaceTypeName());
@@ -517,8 +521,12 @@
         Space newspace = newSpace(null, spaceTitle, false, context);
    
         //execute precreate actions
-        if( !getSpaceManagerExtension().preCreateSpace( 
newspace.getSpaceName(), context ) )
-               return null;
+        try {
+               getSpaceManagerExtension().preCreateSpace( 
newspace.getSpaceName(), context );
+               }
+        catch (SpaceManagerException e) {
+               throw new 
SpaceManagerException(SpaceManagerException.MODULE_PLUGIN_SPACEMANAGER, 
SpaceManagerException.ERROR_SPACE_CREATION_ABORTED_BY_EXTENSION, "Space 
creation aborted by extension", e);
+        }
 
         // Make sure this space does not already exist
         if (!newspace.isNew())
@@ -578,8 +586,12 @@
         Space newspace = newSpace(null, spaceTitle, true, context);
         
         //execute precreate actions
-        if( !getSpaceManagerExtension().preCreateSpace( 
newspace.getSpaceName(), context ) )
-               return null;
+        try {
+               getSpaceManagerExtension().preCreateSpace( 
newspace.getSpaceName(), context );
+               }
+        catch (SpaceManagerException e) {
+               throw new 
SpaceManagerException(SpaceManagerException.MODULE_PLUGIN_SPACEMANAGER, 
SpaceManagerException.ERROR_SPACE_CREATION_ABORTED_BY_EXTENSION, "Space 
creation aborted by extension", e);
+        }
         
         newspace.updateSpaceFromRequest();
         if (!newspace.validateSpaceData())

_______________________________________________
notifications mailing list
notifications@xwiki.org
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to