[portal-commits] JBoss Portal SVN: r5777 - in trunk: core/src/main/org/jboss/portal/core/impl/model/instance federation/src/main/org/jboss/portal/federation/impl portlet/src/main/org/jboss/portal/portlet portlet/src/main/org/jboss/portal/portlet/state portlet/src/main/org/jboss/portal/portlet/state/consumer portlet/src/main/org/jboss/portal/portlet/state/producer portlet/src/main/org/jboss/portal/portlet/test

portal-commits at lists.jboss.org portal-commits at lists.jboss.org
Sat Dec 9 17:37:52 EST 2006


Author: chris.laprun at jboss.com
Date: 2006-12-09 17:37:47 -0500 (Sat, 09 Dec 2006)
New Revision: 5777

Removed:
   trunk/portlet/src/main/org/jboss/portal/portlet/state/PortletClonedEvent.java
   trunk/portlet/src/main/org/jboss/portal/portlet/state/PortletModifiedEvent.java
Modified:
   trunk/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContextImpl.java
   trunk/federation/src/main/org/jboss/portal/federation/impl/FederatedPortletInvokerService.java
   trunk/portlet/src/main/org/jboss/portal/portlet/StateEvent.java
   trunk/portlet/src/main/org/jboss/portal/portlet/state/consumer/ConsumerPortletInvoker.java
   trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java
   trunk/portlet/src/main/org/jboss/portal/portlet/test/InstanceContextImpl.java
   trunk/portlet/src/main/org/jboss/portal/portlet/test/PortletController.java
Log:
Refactored StateEvent to use a type discriminator instead of sub-classes.

Modified: trunk/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContextImpl.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContextImpl.java	2006-12-09 19:12:54 UTC (rev 5776)
+++ trunk/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContextImpl.java	2006-12-09 22:37:47 UTC (rev 5777)
@@ -27,8 +27,6 @@
 import org.jboss.portal.portlet.StateEvent;
 import org.jboss.portal.portlet.spi.InstanceContext;
 import org.jboss.portal.portlet.state.AccessMode;
-import org.jboss.portal.portlet.state.PortletClonedEvent;
-import org.jboss.portal.portlet.state.PortletModifiedEvent;
 
 /**
  * @author <a href="mailto:julien at jboss.org">Julien Viet</a>
@@ -71,15 +69,14 @@
 
    public void onStateEvent(StateEvent event)
    {
-      if (event instanceof PortletClonedEvent)
+      StateEvent.StateEventType type = event.getType();
+      if (StateEvent.PORTLET_CLONED_EVENT.equals(type))
       {
-         PortletClonedEvent pce = (PortletClonedEvent)event;
-         clonedContext = pce.getClonedContext();
+         clonedContext = event.getPortletContext();
       }
-      else if (event instanceof PortletModifiedEvent)
+      else if (StateEvent.PORTLET_MODIFIED_EVENT.equals(type))
       {
-         PortletModifiedEvent pme = (PortletModifiedEvent)event;
-         modifiedContext = pme.getModifiedContext();
+         modifiedContext = event.getPortletContext();
       }
    }
 }

Modified: trunk/federation/src/main/org/jboss/portal/federation/impl/FederatedPortletInvokerService.java
===================================================================
--- trunk/federation/src/main/org/jboss/portal/federation/impl/FederatedPortletInvokerService.java	2006-12-09 19:12:54 UTC (rev 5776)
+++ trunk/federation/src/main/org/jboss/portal/federation/impl/FederatedPortletInvokerService.java	2006-12-09 22:37:47 UTC (rev 5777)
@@ -36,8 +36,6 @@
 import org.jboss.portal.portlet.spi.InstanceContext;
 import org.jboss.portal.portlet.state.AccessMode;
 import org.jboss.portal.portlet.state.DestroyCloneFailure;
-import org.jboss.portal.portlet.state.PortletClonedEvent;
-import org.jboss.portal.portlet.state.PortletModifiedEvent;
 import org.jboss.portal.portlet.state.PropertyChange;
 import org.jboss.portal.portlet.state.PropertyMap;
 
@@ -129,18 +127,7 @@
 
       public void onStateEvent(StateEvent event)
       {
-         if (event instanceof PortletClonedEvent)
-         {
-            PortletClonedEvent pce = (PortletClonedEvent)event;
-            PortletContext clonedContext = pce.getClonedContext();
-            ctx.onStateEvent(new PortletClonedEvent(reference(clonedContext)));
-         }
-         else if (event instanceof PortletModifiedEvent)
-         {
-            PortletModifiedEvent pce = (PortletModifiedEvent)event;
-            PortletContext modifiedContext = pce.getModifiedContext();
-            ctx.onStateEvent(new PortletModifiedEvent(reference(modifiedContext)));
-         }
+         ctx.onStateEvent(new StateEvent(reference(event.getPortletContext()), event.getType()));
       }
    }
 

Modified: trunk/portlet/src/main/org/jboss/portal/portlet/StateEvent.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/StateEvent.java	2006-12-09 19:12:54 UTC (rev 5776)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/StateEvent.java	2006-12-09 22:37:47 UTC (rev 5777)
@@ -22,12 +22,45 @@
  ******************************************************************************/
 package org.jboss.portal.portlet;
 
+import org.jboss.portal.common.util.ParameterValidation;
+
 /**
  * An event that signals state modifications
  *
  * @author <a href="mailto:julien at jboss.org">Julien Viet</a>
- * @version $Revision: 1.1 $
+ * @author <a href="mailto:chris.laprun at jboss.com">Chris Laprun</a>
+ * @version $Revision$
+ * @since 2.6
  */
-public abstract class StateEvent
+public class StateEvent
 {
+   private final PortletContext context;
+   private final StateEventType type;
+   public static final StateEventType PORTLET_CLONED_EVENT = new StateEventType();
+   public static final StateEventType PORTLET_MODIFIED_EVENT = new StateEventType();
+
+   public StateEvent(PortletContext context, StateEventType type)
+   {
+      ParameterValidation.throwIllegalArgExceptionIfNull(context, "Portlet context");
+      ParameterValidation.throwIllegalArgExceptionIfNull(type, "StateEvent type");
+      this.context = context;
+      this.type = type;
+   }
+
+   public PortletContext getPortletContext()
+   {
+      return context;
+   }
+
+   public StateEventType getType()
+   {
+      return type;
+   }
+
+   public static final class StateEventType
+   {
+      private StateEventType()
+      {
+      }
+   }
 }


Property changes on: trunk/portlet/src/main/org/jboss/portal/portlet/StateEvent.java
___________________________________________________________________
Name: svn:keywords
   + LastChangedDate LastChangedBy LastChangedRevision Id
Name: svn:eol-style
   + native

Deleted: trunk/portlet/src/main/org/jboss/portal/portlet/state/PortletClonedEvent.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/state/PortletClonedEvent.java	2006-12-09 19:12:54 UTC (rev 5776)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/state/PortletClonedEvent.java	2006-12-09 22:37:47 UTC (rev 5777)
@@ -1,51 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat                                               *
- * Copyright 2006, Red Hat Middleware, LLC, and individual                    *
- * contributors as indicated by the @authors tag. See the                     *
- * copyright.txt in the distribution for a full listing of                    *
- * individual contributors.                                                   *
- *                                                                            *
- * This is free software; you can redistribute it and/or modify it            *
- * under the terms of the GNU Lesser General Public License as                *
- * published by the Free Software Foundation; either version 2.1 of           *
- * the License, or (at your option) any later version.                        *
- *                                                                            *
- * This software is distributed in the hope that it will be useful,           *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of             *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU           *
- * Lesser General Public License for more details.                            *
- *                                                                            *
- * You should have received a copy of the GNU Lesser General Public           *
- * License along with this software; if not, write to the Free                *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA         *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.                   *
- ******************************************************************************/
-package org.jboss.portal.portlet.state;
-
-import org.jboss.portal.portlet.PortletContext;
-import org.jboss.portal.portlet.StateEvent;
-
-/**
- * @author <a href="mailto:julien at jboss.org">Julien Viet</a>
- * @version $Revision: 1.1 $
- */
-public class PortletClonedEvent extends StateEvent
-{
-
-   /** . */
-   private final PortletContext clonedContext;
-
-   public PortletClonedEvent(PortletContext clonedContext)
-   {
-      if (clonedContext == null)
-      {
-         throw new IllegalArgumentException();
-      }
-      this.clonedContext = clonedContext;
-   }
-
-   public PortletContext getClonedContext()
-   {
-      return clonedContext;
-   }
-}

Deleted: trunk/portlet/src/main/org/jboss/portal/portlet/state/PortletModifiedEvent.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/state/PortletModifiedEvent.java	2006-12-09 19:12:54 UTC (rev 5776)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/state/PortletModifiedEvent.java	2006-12-09 22:37:47 UTC (rev 5777)
@@ -1,51 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat                                               *
- * Copyright 2006, Red Hat Middleware, LLC, and individual                    *
- * contributors as indicated by the @authors tag. See the                     *
- * copyright.txt in the distribution for a full listing of                    *
- * individual contributors.                                                   *
- *                                                                            *
- * This is free software; you can redistribute it and/or modify it            *
- * under the terms of the GNU Lesser General Public License as                *
- * published by the Free Software Foundation; either version 2.1 of           *
- * the License, or (at your option) any later version.                        *
- *                                                                            *
- * This software is distributed in the hope that it will be useful,           *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of             *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU           *
- * Lesser General Public License for more details.                            *
- *                                                                            *
- * You should have received a copy of the GNU Lesser General Public           *
- * License along with this software; if not, write to the Free                *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA         *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.                   *
- ******************************************************************************/
-package org.jboss.portal.portlet.state;
-
-import org.jboss.portal.portlet.PortletContext;
-import org.jboss.portal.portlet.StateEvent;
-
-/**
- * @author <a href="mailto:julien at jboss.org">Julien Viet</a>
- * @version $Revision: 1.1 $
- */
-public class PortletModifiedEvent extends StateEvent
-{
-
-   /** . */
-   private final PortletContext modifiedContext;
-
-   public PortletModifiedEvent(PortletContext clonedContext)
-   {
-      if (clonedContext == null)
-      {
-         throw new IllegalArgumentException();
-      }
-      this.modifiedContext = clonedContext;
-   }
-
-   public PortletContext getModifiedContext()
-   {
-      return modifiedContext;
-   }
-}

Modified: trunk/portlet/src/main/org/jboss/portal/portlet/state/consumer/ConsumerPortletInvoker.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/state/consumer/ConsumerPortletInvoker.java	2006-12-09 19:12:54 UTC (rev 5776)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/state/consumer/ConsumerPortletInvoker.java	2006-12-09 22:37:47 UTC (rev 5777)
@@ -37,8 +37,6 @@
 import org.jboss.portal.portlet.state.AccessMode;
 import org.jboss.portal.portlet.state.InvalidStateIdException;
 import org.jboss.portal.portlet.state.NoSuchStateException;
-import org.jboss.portal.portlet.state.PortletClonedEvent;
-import org.jboss.portal.portlet.state.PortletModifiedEvent;
 import org.jboss.portal.portlet.state.PropertyChange;
 import org.jboss.portal.portlet.state.PropertyMap;
 
@@ -172,12 +170,12 @@
                ConsumerState consumerState = new ConsumerState(clonedContext.getId(), state);
                String stateId = persistenceManager.createState(consumerState);
                String clonedId = CLONE_ID_PREFIX + stateId;
-               PortletClonedEvent event = new PortletClonedEvent(PortletContext.createPortletContext(clonedId));
+               StateEvent event = new StateEvent(PortletContext.createPortletContext(clonedId), StateEvent.PORTLET_CLONED_EVENT);
                cictx.onStateEvent(event);
             }
             else
             {
-               PortletClonedEvent event = new PortletClonedEvent(PortletContext.createPortletContext(clonedContext.getId()));
+               StateEvent event = new StateEvent(PortletContext.createPortletContext(clonedContext.getId()), StateEvent.PORTLET_CLONED_EVENT);
                cictx.onStateEvent(event);
             }
          }
@@ -362,15 +360,14 @@
 
       public void onStateEvent(StateEvent event)
       {
-         if (event instanceof PortletClonedEvent)
+         StateEvent.StateEventType type = event.getType();
+         if (StateEvent.PORTLET_CLONED_EVENT.equals(type))
          {
-            PortletClonedEvent pce = (PortletClonedEvent)event;
-            clonedContext = pce.getClonedContext();
+            clonedContext = event.getPortletContext();
          }
-         else if (event instanceof PortletModifiedEvent)
+         else if (StateEvent.PORTLET_MODIFIED_EVENT.equals(type))
          {
-            PortletModifiedEvent pce = (PortletModifiedEvent)event;
-            modifiedContext = pce.getModifiedContext();
+            modifiedContext = event.getPortletContext();
          }
       }
    }

Modified: trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java	2006-12-09 19:12:54 UTC (rev 5776)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/state/producer/ProducerPortletInvoker.java	2006-12-09 22:37:47 UTC (rev 5777)
@@ -31,6 +31,7 @@
 import org.jboss.portal.portlet.PortletContext;
 import org.jboss.portal.portlet.PortletInvoker;
 import org.jboss.portal.portlet.PortletInvokerException;
+import org.jboss.portal.portlet.StateEvent;
 import org.jboss.portal.portlet.StatefulPortletContext;
 import org.jboss.portal.portlet.info.PortletInfo;
 import org.jboss.portal.portlet.info.PreferenceInfo;
@@ -44,8 +45,6 @@
 import org.jboss.portal.portlet.state.DestroyCloneFailure;
 import org.jboss.portal.portlet.state.InvalidStateIdException;
 import org.jboss.portal.portlet.state.NoSuchStateException;
-import org.jboss.portal.portlet.state.PortletClonedEvent;
-import org.jboss.portal.portlet.state.PortletModifiedEvent;
 import org.jboss.portal.portlet.state.PropertyChange;
 import org.jboss.portal.portlet.state.PropertyMap;
 import org.jboss.portal.portlet.state.SimplePropertyMap;
@@ -271,7 +270,7 @@
                      // Return the clone context
                      String cloneId = PRODUCER_CLONE_ID_PREFIX + cloneStateId;
                      PortletContext clonedCtx = PortletContext.createPortletContext(cloneId);
-                     PortletClonedEvent event = new PortletClonedEvent(clonedCtx);
+                     StateEvent event = new StateEvent(clonedCtx, StateEvent.PORTLET_CLONED_EVENT);
                      instanceCtx.onStateEvent(event);
                   }
                   catch (NoSuchStateException e)
@@ -286,7 +285,7 @@
                else
                {
                   PortletContext clonedCtx = marshall(state.getPortletId(), newPrefs);
-                  PortletClonedEvent event = new PortletClonedEvent(clonedCtx);
+                  StateEvent event = new StateEvent(clonedCtx, StateEvent.PORTLET_CLONED_EVENT);
                   instanceCtx.onStateEvent(event);
                }
             }
@@ -312,7 +311,7 @@
                // Return the clone context
                String cloneId = PRODUCER_CLONE_ID_PREFIX + cloneStateId;
                PortletContext clonedCtx = PortletContext.createPortletContext(cloneId);
-               PortletClonedEvent event = new PortletClonedEvent(clonedCtx);
+               StateEvent event = new StateEvent(clonedCtx, StateEvent.PORTLET_CLONED_EVENT);
                instanceCtx.onStateEvent(event);
             }
          }
@@ -338,7 +337,7 @@
             else
             {
                PortletContext modifiedCtx = marshall(targetPortletId, newPrefs);
-               PortletModifiedEvent event = new PortletModifiedEvent(modifiedCtx);
+               StateEvent event = new StateEvent(modifiedCtx, StateEvent.PORTLET_MODIFIED_EVENT);
                instanceCtx.onStateEvent(event);
             }
          }

Modified: trunk/portlet/src/main/org/jboss/portal/portlet/test/InstanceContextImpl.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/test/InstanceContextImpl.java	2006-12-09 19:12:54 UTC (rev 5776)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/test/InstanceContextImpl.java	2006-12-09 22:37:47 UTC (rev 5777)
@@ -26,8 +26,6 @@
 import org.jboss.portal.portlet.StateEvent;
 import org.jboss.portal.portlet.spi.InstanceContext;
 import org.jboss.portal.portlet.state.AccessMode;
-import org.jboss.portal.portlet.state.PortletClonedEvent;
-import org.jboss.portal.portlet.state.PortletModifiedEvent;
 
 /**
  * @author <a href="mailto:julien at jboss.org">Julien Viet</a>
@@ -81,15 +79,14 @@
 
    public void onStateEvent(StateEvent event)
    {
-      if (event instanceof PortletClonedEvent)
+      StateEvent.StateEventType type = event.getType();
+      if (StateEvent.PORTLET_CLONED_EVENT.equals(type))
       {
-         PortletClonedEvent pce = (PortletClonedEvent)event;
-         clonedContext = pce.getClonedContext();
+         clonedContext = event.getPortletContext();
       }
-      else if (event instanceof PortletModifiedEvent)
+      else if (StateEvent.PORTLET_MODIFIED_EVENT.equals(type))
       {
-         PortletModifiedEvent pme = (PortletModifiedEvent)event;
-         modifiedContext = pme.getModifiedContext();
+         modifiedContext = event.getPortletContext();
       }
    }
 

Modified: trunk/portlet/src/main/org/jboss/portal/portlet/test/PortletController.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/test/PortletController.java	2006-12-09 19:12:54 UTC (rev 5776)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/test/PortletController.java	2006-12-09 22:37:47 UTC (rev 5777)
@@ -63,8 +63,6 @@
 import org.jboss.portal.portlet.spi.UserContext;
 import org.jboss.portal.portlet.spi.WindowContext;
 import org.jboss.portal.portlet.state.AccessMode;
-import org.jboss.portal.portlet.state.PortletClonedEvent;
-import org.jboss.portal.portlet.state.PortletModifiedEvent;
 import org.jboss.portal.server.AbstractServerURL;
 import org.jboss.portal.server.RequestController;
 import org.jboss.portal.server.ServerException;
@@ -410,16 +408,7 @@
 
       public void onStateEvent(StateEvent event)
       {
-         if (event instanceof PortletClonedEvent)
-         {
-            PortletClonedEvent pce = (PortletClonedEvent)event;
-            req.getSession().setAttribute(CLONE_OF + this.portletContext.getId(), pce.getClonedContext());
-         }
-         else if (event instanceof PortletModifiedEvent)
-         {
-            PortletModifiedEvent pme = (PortletModifiedEvent)event;
-            req.getSession().setAttribute(CLONE_OF + this.portletContext.getId(), pme.getModifiedContext());
-         }
+         req.getSession().setAttribute(CLONE_OF + this.portletContext.getId(), event.getPortletContext());
       }
 
       public void portletCloned(String cloneId)




More information about the portal-commits mailing list