Author: bobtarling
Date: 2011-05-07 04:43:37-0700
New Revision: 19358
Modified:
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/FacadeEUMLImpl.java
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java
trunk/src/argouml-core-model/src/org/argouml/model/Facade.java
Log:
Implement some UML2 methods for state diagram.
Introduce getTriggers method (UML2 has a List not just a single item)
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=19358&r1=19357&r2=19358
==============================================================================
--- 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-07 04:43:37-0700
@@ -789,8 +789,10 @@
}
public Object getGuard(Object handle) {
- throw new NotYetImplementedException();
-
+ if (isATransition(handle)) {
+ return ((Transition) handle).getGuard();
+ }
+ throw new IllegalArgumentException();
}
public Object getIcon(Object handle) {
@@ -849,8 +851,26 @@
return ((UseCase) handle).getIncludes();
}
- public Collection getIncomings(Object handle) {
- throw new NotYetImplementedException();
+ public List getIncomings(Object handle) {
+ if (isAGuard(handle) || isAAction(handle)) {
+ return getIncomings(getTransition(handle));
+ }
+ if (isAEvent(handle)) {
+ Iterator trans = getTransitions(handle).iterator();
+ List incomings = new ArrayList();
+ while (trans.hasNext()) {
+ incomings.addAll(getIncomings(trans.next()));
+ }
+ return incomings;
+ }
+ if (isAStateVertex(handle)) {
+ return ((Vertex) handle).getIncomings();
+ }
+ // For a Transition use indirection through source StateVertex
+ if (isATransition(handle)) {
+ return ((Transition) handle).getSource().getIncomings();
+ }
+ throw new IllegalArgumentException();
}
public Object getInitialValue(Object handle) {
@@ -1150,8 +1170,26 @@
throw new NotYetImplementedException();
}
- public Collection getOutgoings(Object handle) {
- throw new NotYetImplementedException();
+ public List getOutgoings(Object handle) {
+ if (isAGuard(handle) || isAAction(handle)) {
+ return getOutgoings(getTransition(handle));
+ }
+ if (isAEvent(handle)) {
+ Iterator trans = getTransitions(handle).iterator();
+ List outgoings = new ArrayList();
+ while (trans.hasNext()) {
+ outgoings.addAll(getOutgoings(trans.next()));
+ }
+ return outgoings;
+ }
+ if (isAStateVertex(handle)) {
+ return ((Vertex) handle).getOutgoings();
+ }
+ // For a Transition use indirection through source StateVertex
+ if (isATransition(handle)) {
+ return ((Transition) handle).getSource().getOutgoings();
+ }
+ throw new IllegalArgumentException();
}
public Collection<Element> getOwnedElements(Object handle) {
@@ -1600,6 +1638,13 @@
return ((Transition) handle).getTriggers().get(0);
}
+ public List<Trigger> getTriggers(Object handle) {
+ if (!(handle instanceof Transition)) {
+ throw new IllegalArgumentException();
+ }
+ return ((Transition) handle).getTriggers();
+ }
+
public Object getType(Object handle) {
if (!(handle instanceof TypedElement)) {
throw new IllegalArgumentException();
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=19358&r1=19357&r2=19358
==============================================================================
--- 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-07 04:43:37-0700
@@ -3457,6 +3457,22 @@
}
}
+ public List getTriggers(Object handle) {
+ try {
+ if (handle instanceof Transition) {
+ ArrayList l = new ArrayList();
+ Event trig = ((Transition) handle).getTrigger();
+ if (trig != null) {
+ l.add(trig);
+ }
+ return l;
+ }
+ return illegalArgumentList(handle);
+ } catch (InvalidObjectException e) {
+ throw new InvalidElementException(e);
+ }
+ }
+
public Object getType(Object handle) {
try {
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=19358&r1=19357&r2=19358
==============================================================================
--- 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-07 04:43:37-0700
@@ -2864,10 +2864,19 @@
*
* @param handle the transition
* @return the trigger
+ * @deprecated use getTriggers
*/
Object getTrigger(Object handle);
/**
+ * Get the triggers of a transition.
+ *
+ * @param handle the transition
+ * @return the trigger
+ */
+ List getTriggers(Object handle);
+
+ /**
* The type of a StructuralFeature, AssociationEnd, Parameter,
* ObjectFlowState, TagDefinition, TaggedValue or ClassifierInState.
*
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2732327
To unsubscribe from this discussion, e-mail: [[email protected]].
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.