diff options
author | khussey | 2006-05-17 21:28:59 +0000 |
---|---|---|
committer | khussey | 2006-05-17 21:28:59 +0000 |
commit | f59c99cf7a4be10e61ada233aa680c6d7b4deca6 (patch) | |
tree | 7c522f219fe0378ed07ed99b9e551de30e08a371 | |
parent | 63d6608bff1a0fdfb0863f2ddcc5e67481aa82d4 (diff) | |
download | org.eclipse.uml2.test-f59c99cf7a4be10e61ada233aa680c6d7b4deca6.tar.gz org.eclipse.uml2.test-f59c99cf7a4be10e61ada233aa680c6d7b4deca6.tar.xz org.eclipse.uml2.test-f59c99cf7a4be10e61ada233aa680c6d7b4deca6.zip |
[142318] Correcting handling of call and signal triggers.
-rw-r--r-- | plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLResourceHandler.java | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLResourceHandler.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLResourceHandler.java index b2a29847..c321b18a 100644 --- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLResourceHandler.java +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLResourceHandler.java @@ -8,7 +8,7 @@ * Contributors: * IBM - initial API and implementation * - * $Id: UML22UMLResourceHandler.java,v 1.21 2006/05/15 22:29:41 khussey Exp $ + * $Id: UML22UMLResourceHandler.java,v 1.22 2006/05/17 21:28:59 khussey Exp $ */ package org.eclipse.uml2.uml.resource; @@ -1601,22 +1601,36 @@ public class UML22UMLResourceHandler ((ChangeEvent) event) .setChangeExpression((ValueSpecification) value); } else { - value = getValue(extension.getMixed(), "operation"); //$NON-NLS-1$ + value = getValue(extension.getAnyAttribute(), + "operation"); //$NON-NLS-1$ - if (value instanceof Operation) { - event = (CallEvent) trigger.getNearestPackage() - .createPackagedElement(trigger.getName(), - UMLPackage.Literals.CALL_EVENT); - ((CallEvent) event).setOperation((Operation) value); + if (value instanceof String) { + EObject eObject = resource + .getEObject((String) value); + + if (eObject instanceof Operation) { + event = (CallEvent) trigger.getNearestPackage() + .createPackagedElement(trigger.getName(), + UMLPackage.Literals.CALL_EVENT); + ((CallEvent) event) + .setOperation((Operation) eObject); + } } else { value = getValue(extension.getMixed(), "signal"); //$NON-NLS-1$ - if (value instanceof Signal) { - event = (SignalEvent) trigger - .getNearestPackage().createPackagedElement( - trigger.getName(), - UMLPackage.Literals.SIGNAL_EVENT); - ((SignalEvent) event).setSignal((Signal) value); + if (value instanceof String) { + EObject eObject = resource + .getEObject((String) value); + + if (eObject instanceof Signal) { + event = (SignalEvent) trigger + .getNearestPackage() + .createPackagedElement( + trigger.getName(), + UMLPackage.Literals.SIGNAL_EVENT); + ((SignalEvent) event) + .setSignal((Signal) eObject); + } } else { value = getValue(extension.getMixed(), "when"); //$NON-NLS-1$ |