[105191] Enhancing data migration mechanism.
diff --git a/plugins/org.eclipse.uml2.uml/model/UML2_2_UML.ecore2ecore b/plugins/org.eclipse.uml2.uml/model/UML2_2_UML.ecore2ecore
index 957cdbe..0dbed47 100644
--- a/plugins/org.eclipse.uml2.uml/model/UML2_2_UML.ecore2ecore
+++ b/plugins/org.eclipse.uml2.uml/model/UML2_2_UML.ecore2ecore
@@ -145,6 +145,9 @@
<outputs href="UML.ecore#//InterruptibleActivityRegion/node"/>
</nested>
<nested>
+ <nested>
+ <outputs href="UML.ecore#//InteractionUse/argument"/>
+ </nested>
<inputs href="../../org.eclipse.uml2/model/UML2.ecore#//InteractionOccurrence"/>
<outputs href="UML.ecore#//InteractionUse"/>
</nested>
diff --git a/plugins/org.eclipse.uml2.uml/model/UML2_2_UML.ecore2xml b/plugins/org.eclipse.uml2.uml/model/UML2_2_UML.ecore2xml
index cad96fb..4a7c2d9 100644
--- a/plugins/org.eclipse.uml2.uml/model/UML2_2_UML.ecore2xml
+++ b/plugins/org.eclipse.uml2.uml/model/UML2_2_UML.ecore2xml
@@ -125,6 +125,10 @@
<value name="InteractionOccurrence" targetNamespace="http://www.eclipse.org/uml2/1.0.0/UML"/>
</ecoreToXMLInfo>
<ecoreToXMLInfo>
+ <key xsi:type="ecore:EReference" href="UML.ecore#//InteractionUse/argument"/>
+ <value xMLRepresentation="0"/>
+ </ecoreToXMLInfo>
+ <ecoreToXMLInfo>
<key xsi:type="ecore:EClass" href="UML.ecore#//BehaviorExecutionSpecification"/>
<value name="ExecutionOccurrence" targetNamespace="http://www.eclipse.org/uml2/1.0.0/UML"/>
</ecoreToXMLInfo>
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/resource/UML22UMLHandler.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/resource/UML22UMLHandler.java
index d4e64cc..694cec5 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/resource/UML22UMLHandler.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/resource/UML22UMLHandler.java
@@ -8,7 +8,7 @@
* Contributors:
* IBM - initial API and implementation
*
- * $Id: UML22UMLHandler.java,v 1.3 2006/04/13 01:13:49 khussey Exp $
+ * $Id: UML22UMLHandler.java,v 1.4 2006/04/13 15:52:25 khussey Exp $
*/
package org.eclipse.uml2.uml.internal.resource;
@@ -41,13 +41,20 @@
typeToTypeMap.put("uml:Stop", featureMap); //$NON-NLS-1$
typeMap = new BasicEMap();
+ typeMap.put(UMLPackage.Literals.DESTROY_LINK_ACTION, "uml:LinkEndDestructionData"); //$NON-NLS-1$
+ featureMap = new BasicEMap();
+ featureMap.put("endData", typeMap); //$NON-NLS-1$
+ typeToTypeMap.put("uml:LinkEndCreationData", featureMap); //$NON-NLS-1$
+ typeToTypeMap.put("uml:LinkEndData", featureMap); //$NON-NLS-1$
+
+ typeMap = new BasicEMap();
typeMap.put(UMLPackage.Literals.ACTIVITY, "uml:CallBehaviorAction"); //$NON-NLS-1$
featureMap = new BasicEMap();
featureMap.put("node", typeMap); //$NON-NLS-1$
typeToTypeMap.put("uml:ApplyFunctionAction", featureMap); //$NON-NLS-1$
typeMap = new BasicEMap();
- typeMap.put(UMLPackage.Literals.ACTIVITY, "uml:WriteStructuralFeatureAction"); //$NON-NLS-1$
+ typeMap.put(UMLPackage.Literals.ACTIVITY, "uml:OpaqueAction"); //$NON-NLS-1$
featureMap = new BasicEMap();
featureMap.put("node", typeMap); //$NON-NLS-1$
typeToTypeMap.put("uml:DurationObservationAction", featureMap); //$NON-NLS-1$
@@ -76,7 +83,11 @@
EMap typeMap = null;
typeMap = new BasicEMap();
- typeMap.put(UMLPackage.Literals.WRITE_STRUCTURAL_FEATURE_ACTION, "uml:Duration"); //$NON-NLS-1$
+ typeMap.put(UMLPackage.Literals.INTERACTION_USE, "uml:InputPin"); //$NON-NLS-1$
+ featureToTypeMap.put("argument", typeMap); //$NON-NLS-1$
+
+ typeMap = new BasicEMap();
+ typeMap.put(UMLPackage.Literals.OPAQUE_ACTION, "uml:Duration"); //$NON-NLS-1$
featureToTypeMap.put("duration", typeMap); //$NON-NLS-1$
typeMap = new BasicEMap();
@@ -88,7 +99,7 @@
featureToTypeMap.put("formalParameter", typeMap); //$NON-NLS-1$
typeMap = new BasicEMap();
- typeMap.put(UMLPackage.Literals.WRITE_STRUCTURAL_FEATURE_ACTION, "uml:TimeExpression"); //$NON-NLS-1$
+ typeMap.put(UMLPackage.Literals.OPAQUE_ACTION, "uml:TimeExpression"); //$NON-NLS-1$
featureToTypeMap.put("now", typeMap); //$NON-NLS-1$
typeMap = new BasicEMap();
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLExtendedMetadata.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLExtendedMetadata.java
index ecf5b9c..dc33097 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLExtendedMetadata.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/resource/UML22UMLExtendedMetadata.java
@@ -8,7 +8,7 @@
* Contributors:
* IBM - initial API and implementation
*
- * $Id: UML22UMLExtendedMetadata.java,v 1.5 2006/04/13 01:13:49 khussey Exp $
+ * $Id: UML22UMLExtendedMetadata.java,v 1.6 2006/04/13 15:52:25 khussey Exp $
*/
package org.eclipse.uml2.uml.resource;
@@ -1669,7 +1669,7 @@
fragmentMap.put("_m9neRK86EdiEh75YJ_3n8g", "InteractionUse"); //$NON-NLS-1$ //$NON-NLS-2$
fragmentMap.put("_m9neRq86EdiEh75YJ_3n8g", "InteractionUse-refersTo"); //$NON-NLS-1$ //$NON-NLS-2$
fragmentMap.put("_m9neR686EdiEh75YJ_3n8g", "InteractionUse-actualGate"); //$NON-NLS-1$ //$NON-NLS-2$
- fragmentMap.put("_m9neSq86EdiEh75YJ_3n8g", "InteractionUse-argument"); //$NON-NLS-1$ //$NON-NLS-2$
+ fragmentMap.put("_m9neSq86EdiEh75YJ_3n8g", "CallBehaviorAction-argument"); //$NON-NLS-1$ //$NON-NLS-2$
// fragmentMap.put("_h4Kfw8enEdm17tz62ORDiA", "_ownedMember.415"); //$NON-NLS-1$ //$NON-NLS-2$
// fragmentMap.put("_h4KfxMenEdm17tz62ORDiA", "_ownedMember.415-_ownedEnd.0"); //$NON-NLS-1$ //$NON-NLS-2$
// fragmentMap.put("_h4KfxcenEdm17tz62ORDiA", "_ownedMember.416"); //$NON-NLS-1$ //$NON-NLS-2$
@@ -1973,8 +1973,8 @@
fragmentMap.put("_m9ng_q86EdiEh75YJ_3n8g", "DurationObservation-event"); //$NON-NLS-1$ //$NON-NLS-2$
// fragmentMap.put("_h4Khd8enEdm17tz62ORDiA", "_ownedMember.548"); //$NON-NLS-1$ //$NON-NLS-2$
// fragmentMap.put("_h4KheMenEdm17tz62ORDiA", "_ownedMember.548-_ownedEnd.0"); //$NON-NLS-1$ //$NON-NLS-2$
- fragmentMap.put("_m9nhA686EdiEh75YJ_3n8g", "WriteStructuralFeatureAction"); //$NON-NLS-1$ //$NON-NLS-2$
- fragmentMap.put("_m9nhBa86EdiEh75YJ_3n8g", "WriteStructuralFeatureAction-value"); //$NON-NLS-1$ //$NON-NLS-2$
+ fragmentMap.put("_m9nhA686EdiEh75YJ_3n8g", "OpaqueAction"); //$NON-NLS-1$ //$NON-NLS-2$
+ fragmentMap.put("_m9nhBa86EdiEh75YJ_3n8g", "ValuePin-value"); //$NON-NLS-1$ //$NON-NLS-2$
// fragmentMap.put("_h4KhfsenEdm17tz62ORDiA", "_ownedMember.550"); //$NON-NLS-1$ //$NON-NLS-2$
// fragmentMap.put("_h4Khf8enEdm17tz62ORDiA", "_ownedMember.550-_ownedEnd.0"); //$NON-NLS-1$ //$NON-NLS-2$
fragmentMap.put("_m9nhDq86EdiEh75YJ_3n8g", "DurationInterval"); //$NON-NLS-1$ //$NON-NLS-2$
@@ -1988,8 +1988,8 @@
fragmentMap.put("_m9nhIK86EdiEh75YJ_3n8g", "TimeConstraint"); //$NON-NLS-1$ //$NON-NLS-2$
fragmentMap.put("_m9nhJq86EdiEh75YJ_3n8g", "IntervalConstraint"); //$NON-NLS-1$ //$NON-NLS-2$
fragmentMap.put("_m9nhLK86EdiEh75YJ_3n8g", "TimeInterval"); //$NON-NLS-1$ //$NON-NLS-2$
- fragmentMap.put("_m9nhMq86EdiEh75YJ_3n8g", "WriteStructuralFeatureAction"); //$NON-NLS-1$ //$NON-NLS-2$
- fragmentMap.put("_m9nhNK86EdiEh75YJ_3n8g", "WriteStructuralFeatureAction-value"); //$NON-NLS-1$ //$NON-NLS-2$
+ fragmentMap.put("_m9nhMq86EdiEh75YJ_3n8g", "OpaqueAction"); //$NON-NLS-1$ //$NON-NLS-2$
+ fragmentMap.put("_m9nhNK86EdiEh75YJ_3n8g", "ValuePin-value"); //$NON-NLS-1$ //$NON-NLS-2$
// fragmentMap.put("_h4Khl8enEdm17tz62ORDiA", "_ownedMember.559"); //$NON-NLS-1$ //$NON-NLS-2$
// fragmentMap.put("_h4KhmMenEdm17tz62ORDiA", "_ownedMember.559-_ownedEnd.0"); //$NON-NLS-1$ //$NON-NLS-2$
fragmentMap.put("_m9nhPa86EdiEh75YJ_3n8g", "DurationConstraint"); //$NON-NLS-1$ //$NON-NLS-2$
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 95efb66..3b690c5 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.7 2006/04/13 01:13:49 khussey Exp $
+ * $Id: UML22UMLResourceHandler.java,v 1.8 2006/04/13 15:52:25 khussey Exp $
*/
package org.eclipse.uml2.uml.resource;
@@ -41,6 +41,7 @@
import org.eclipse.emf.ecore.xmi.impl.BasicResourceHandler;
import org.eclipse.emf.ecore.xml.type.AnyType;
import org.eclipse.uml2.common.util.UML2Util;
+import org.eclipse.uml2.uml.Activity;
import org.eclipse.uml2.uml.BehavioralFeature;
import org.eclipse.uml2.uml.BehavioredClassifier;
import org.eclipse.uml2.uml.CallBehaviorAction;
@@ -55,12 +56,15 @@
import org.eclipse.uml2.uml.Extension;
import org.eclipse.uml2.uml.ExtensionEnd;
import org.eclipse.uml2.uml.FunctionBehavior;
+import org.eclipse.uml2.uml.InputPin;
+import org.eclipse.uml2.uml.InteractionUse;
import org.eclipse.uml2.uml.Message;
import org.eclipse.uml2.uml.MessageEnd;
import org.eclipse.uml2.uml.MessageSort;
import org.eclipse.uml2.uml.MultiplicityElement;
import org.eclipse.uml2.uml.NamedElement;
import org.eclipse.uml2.uml.Namespace;
+import org.eclipse.uml2.uml.OpaqueAction;
import org.eclipse.uml2.uml.OpaqueExpression;
import org.eclipse.uml2.uml.Operation;
import org.eclipse.uml2.uml.PackageImport;
@@ -82,7 +86,6 @@
import org.eclipse.uml2.uml.ValuePin;
import org.eclipse.uml2.uml.ValueSpecification;
import org.eclipse.uml2.uml.VisibilityKind;
-import org.eclipse.uml2.uml.WriteStructuralFeatureAction;
import org.eclipse.uml2.uml.util.UMLSwitch;
import org.eclipse.uml2.uml.util.UMLUtil;
@@ -354,6 +357,26 @@
return super.caseExtensionEnd(extensionEnd);
}
+ public Object caseInteractionUse(InteractionUse interactionUse) {
+ AnyType extension = getExtension(resource, interactionUse);
+
+ if (extension != null) {
+ InputPin argument = (InputPin) getValue(extension
+ .getMixed(), "argument", true); //$NON-NLS-1$
+
+ if (argument != null) {
+ doSwitch(argument);
+
+ ((CallBehaviorAction) interactionUse.createArgument(
+ argument.getName(),
+ UMLPackage.Literals.CALL_BEHAVIOR_ACTION))
+ .getArguments().add(argument);
+ }
+ }
+
+ return super.caseInteractionUse(interactionUse);
+ }
+
public Object caseMultiplicityElement(
MultiplicityElement multiplicityElement) {
AnyType extension = getExtension(resource, multiplicityElement);
@@ -429,10 +452,12 @@
for (Iterator pi = getValues(extension.getMixed(),
"packageImport", true).iterator(); pi.hasNext();) { //$NON-NLS-1$
- PackageImport packageImport = (PackageImport) pi.next();
+ EObject packageImport = (EObject) pi.next();
- doSwitch(packageImport);
- packageImports.add(packageImport);
+ if (packageImport instanceof PackageImport) {
+ doSwitch(packageImport);
+ packageImports.add(packageImport);
+ }
}
}
@@ -800,38 +825,48 @@
return super.caseTrigger(trigger);
}
- public Object caseWriteStructuralFeatureAction(
- WriteStructuralFeatureAction writeStructuralFeatureAction) {
- AnyType extension = getExtension(resource,
- writeStructuralFeatureAction);
+ public Object caseOpaqueAction(OpaqueAction opaqueAction) {
+ AnyType extension = getExtension(resource, opaqueAction);
if (extension != null) {
- Duration duration = (Duration) getValue(extension
- .getMixed(), "duration", true); //$NON-NLS-1$
+ Activity activity = opaqueAction.getActivity();
- if (duration != null) {
- doSwitch(duration);
+ if (activity != null) {
+ Duration duration = (Duration) getValue(extension
+ .getMixed(), "duration", true); //$NON-NLS-1$
- ((ValuePin) writeStructuralFeatureAction.createValue(
- duration.getName(), duration.getType(),
- UMLPackage.Literals.VALUE_PIN)).setValue(duration);
- }
+ if (duration != null) {
+ doSwitch(duration);
- TimeExpression timeExpression = (TimeExpression) getValue(
- extension.getMixed(), "now", true); //$NON-NLS-1$
+ ValuePin inputValue = (ValuePin) activity
+ .createNode(duration.getName(),
+ UMLPackage.Literals.VALUE_PIN);
- if (timeExpression != null) {
- doSwitch(timeExpression);
+ inputValue.setType(duration.getType());
+ inputValue.setValue(duration);
- ((ValuePin) writeStructuralFeatureAction.createValue(
- timeExpression.getName(), timeExpression.getType(),
- UMLPackage.Literals.VALUE_PIN))
- .setValue(timeExpression);
+ opaqueAction.getInputValues().add(inputValue);
+ }
+
+ TimeExpression timeExpression = (TimeExpression) getValue(
+ extension.getMixed(), "now", true); //$NON-NLS-1$
+
+ if (timeExpression != null) {
+ doSwitch(timeExpression);
+
+ ValuePin inputValue = (ValuePin) activity
+ .createNode(timeExpression.getName(),
+ UMLPackage.Literals.VALUE_PIN);
+
+ inputValue.setType(timeExpression.getType());
+ inputValue.setValue(timeExpression);
+
+ opaqueAction.getInputValues().add(inputValue);
+ }
}
}
- return super
- .caseWriteStructuralFeatureAction(writeStructuralFeatureAction);
+ return super.caseOpaqueAction(opaqueAction);
}
public Object defaultCase(EObject eObject) {