Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkhussey2006-05-17 21:28:59 +0000
committerkhussey2006-05-17 21:28:59 +0000
commitf59c99cf7a4be10e61ada233aa680c6d7b4deca6 (patch)
tree7c522f219fe0378ed07ed99b9e551de30e08a371
parent63d6608bff1a0fdfb0863f2ddcc5e67481aa82d4 (diff)
downloadorg.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.java40
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$

Back to the top