Author: bobtarling
Date: 2011-05-09 05:40:09-0700
New Revision: 19382

Modified:
   
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java
   
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/StateMachinesHelperEUMLImpl.java
   trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java
   
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/StateMachinesHelperMDRImpl.java
   
trunk/src/argouml-core-model/src/org/argouml/model/AbstractStateMachinesHelperDecorator.java
   trunk/src/argouml-core-model/src/org/argouml/model/Facade.java
   trunk/src/argouml-core-model/src/org/argouml/model/StateMachinesHelper.java

Log:
Add UML2 support for regions and orthogonal states

Modified: 
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java?view=diff&pathrev=19382&r1=19381&r2=19382
==============================================================================
--- 
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java
    (original)
+++ 
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java
    2011-05-09 05:40:09-0700
@@ -2383,6 +2383,10 @@
         throw new NotYetImplementedException();
     }
 
+    public boolean isOrthogonal(Object handle) {
+        return ((State) handle).isOrthogonal();
+    }
+
     public boolean isConstructor(Object handle) {
         if (handle instanceof Operation) {
             final Operation operation = (Operation) handle;

Modified: 
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/StateMachinesHelperEUMLImpl.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/StateMachinesHelperEUMLImpl.java?view=diff&pathrev=19382&r1=19381&r2=19382
==============================================================================
--- 
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/StateMachinesHelperEUMLImpl.java
       (original)
+++ 
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/StateMachinesHelperEUMLImpl.java
       2011-05-09 05:40:09-0700
@@ -1,6 +1,6 @@
 // $Id$
 
/*******************************************************************************
- * Copyright (c) 2007,2010 Tom Morris and other contributors
+ * Copyright (c) 2007-2011 Tom Morris and other contributors
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -8,16 +8,19 @@
  *
  * Contributors:
  *    Tom Morris - initial framework 
+ *    Bob Tarling
  
*******************************************************************************/
 package org.argouml.model.euml;
 
 import java.util.Collection;
-import org.apache.log4j.Logger;
+import java.util.List;
+
 import org.argouml.model.Model;
 import org.argouml.model.StateMachinesHelper;
 import org.eclipse.uml2.uml.Classifier;
 import org.eclipse.uml2.uml.Region;
 import org.eclipse.uml2.uml.State;
+import org.eclipse.uml2.uml.StateMachine;
 import org.eclipse.uml2.uml.Transition;
 import org.eclipse.uml2.uml.Vertex;
 
@@ -31,9 +34,6 @@
      */
     private EUMLModelImplementation modelImpl;
 
-    private static final Logger LOG =
-        Logger.getLogger(StateMachinesHelperEUMLImpl.class);
-    
     /**
      * Constructor.
      * 
@@ -109,6 +109,15 @@
         throw new NotYetImplementedException();
 
     }
+    
+    public List getRegions(Object handle) {
+        if (handle instanceof StateMachine) {
+            ((StateMachine) handle).getRegions();
+        } else if (handle instanceof State) {
+            ((State) handle).getRegions();
+        }
+        throw new IllegalArgumentException();
+    }
 
     public Object getSource(Object trans) {
         if (trans instanceof Transition) {
@@ -119,8 +128,9 @@
 
     public Object getStateMachine(Object handle) {
         if (handle == null) {
-            throw new IllegalArgumentException("bad argument to "
-                    + "getStateMachine() - " + handle);
+            throw new IllegalArgumentException(
+                    "bad argument to getStateMachine() - " //$NON-NLS-1$
+                    + handle);
         }
         Object container =
             modelImpl.getFacade().getModelElementContainer(handle);

Modified: 
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java?view=diff&pathrev=19382&r1=19381&r2=19382
==============================================================================
--- 
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java   
    (original)
+++ 
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java   
    2011-05-09 05:40:09-0700
@@ -1,6 +1,6 @@
 /* $Id$
  
*******************************************************************************
- * Copyright (c) 2005,2010 Contributors - see below
+ * Copyright (c) 2005-2011 Contributors - see below
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,7 +10,8 @@
  *    Linus Tolke - initial framework implementation
  *    <see source control change log for other early contributors>
  *    Ludovic Maitre - UML 1.4
- *    Tom Morris - UML 1.4 
+ *    Tom Morris - UML 1.4
+ *    Bob Tarling
  *    
  
*******************************************************************************
  */
@@ -1046,6 +1047,10 @@
         return illegalArgumentBoolean(handle);
     }
 
+    public boolean isOrthogonal(Object handle) {
+        throw new NotImplementedException(
+                "Orthogonal is not a UML1.4 property");
+    }
 
     public boolean isPrimaryObject(Object handle) {
         try {

Modified: 
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/StateMachinesHelperMDRImpl.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/StateMachinesHelperMDRImpl.java?view=diff&pathrev=19382&r1=19381&r2=19382
==============================================================================
--- 
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/StateMachinesHelperMDRImpl.java
  (original)
+++ 
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/StateMachinesHelperMDRImpl.java
  2011-05-09 05:40:09-0700
@@ -73,6 +73,7 @@
 import org.omg.uml.foundation.datatypes.Expression;
 import org.omg.uml.foundation.datatypes.TimeExpression;
 import org.omg.uml.modelmanagement.UmlPackage;
+import org.openide.util.NotImplementedException;
 
 /**
  * The State Machines Helper Implementation for MDR.
@@ -243,6 +244,10 @@
         }
     }
 
+    public List getRegions(Object handle) {
+        throw new NotImplementedException("Region is not a UML1.4 metatype");
+    }
+
 
     public Collection<StateVertex> getOutgoingStates(Object ostatevertex) {
         try {

Modified: 
trunk/src/argouml-core-model/src/org/argouml/model/AbstractStateMachinesHelperDecorator.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model/src/org/argouml/model/AbstractStateMachinesHelperDecorator.java?view=diff&pathrev=19382&r1=19381&r2=19382
==============================================================================
--- 
trunk/src/argouml-core-model/src/org/argouml/model/AbstractStateMachinesHelperDecorator.java
        (original)
+++ 
trunk/src/argouml-core-model/src/org/argouml/model/AbstractStateMachinesHelperDecorator.java
        2011-05-09 05:40:09-0700
@@ -39,6 +39,7 @@
 package org.argouml.model;
 
 import java.util.Collection;
+import java.util.List;
 
 /**
  * An abstract Decorator for the {@link StateMachinesHelper}.
@@ -104,6 +105,10 @@
     public Collection getAllPossibleSubvertices(Object oState) {
         return impl.getAllPossibleSubvertices(oState);
     }
+    
+    public List getRegions(Object handle) {
+        return impl.getRegions(handle);
+    }
 
     public void setStatemachineAsSubmachine(Object oSubmachineState,
             Object oStatemachine) {

Modified: trunk/src/argouml-core-model/src/org/argouml/model/Facade.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model/src/org/argouml/model/Facade.java?view=diff&pathrev=19382&r1=19381&r2=19382
==============================================================================
--- trunk/src/argouml-core-model/src/org/argouml/model/Facade.java      
(original)
+++ trunk/src/argouml-core-model/src/org/argouml/model/Facade.java      
2011-05-09 05:40:09-0700
@@ -1361,6 +1361,14 @@
      * @return true if handle is navigable
      */
     boolean isNavigable(Object handle);
+    
+    /**
+     * Recognizer for orthogonal state.
+     *
+     * @param handle the state
+     * @return true if orthogonal.
+     */
+    boolean isOrthogonal(Object handle);
 
     /**
      * Recognizer for primary objects. A primary object is an object that is

Modified: 
trunk/src/argouml-core-model/src/org/argouml/model/StateMachinesHelper.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model/src/org/argouml/model/StateMachinesHelper.java?view=diff&pathrev=19382&r1=19381&r2=19382
==============================================================================
--- trunk/src/argouml-core-model/src/org/argouml/model/StateMachinesHelper.java 
(original)
+++ trunk/src/argouml-core-model/src/org/argouml/model/StateMachinesHelper.java 
2011-05-09 05:40:09-0700
@@ -40,6 +40,7 @@
 package org.argouml.model;
 
 import java.util.Collection;
+import java.util.List;
 
 /**
  * The interface for the helper for StateMachines.<p>
@@ -159,6 +160,15 @@
     Object getTop(Object sm);
 
     /**
+     * Get the regions of a state or statemachine.<p>
+     *
+     * @param hanlde the given state or statemachine
+     * @return the regions
+     */
+    List getRegions(Object handle);
+
+    
+    /**
      * Gets all statevertices that are a target to transitions
      * outgoing from the given statevertex.<p>
      *

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2733089

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to