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]].
