svn commit: r18435 - trunk/src/argouml-core-model-euml/src/org/argouml/model/euml

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: thn
Date: 2010-06-07 00:17:07-0700
New Revision: 18435

Modified:
   trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java
   trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreHelperEUMLImpl.java

Log:
UML2: implementation for Artifact and Manifestation related methods

Modified: trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java?view=diff&pathrev=18435&r1=18434&r2=18435
==============================================================================
--- trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java	(original)
+++ trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java	2010-06-07 00:17:07-0700
@@ -10,6 +10,7 @@
  *    Tom Morris - initial implementation
  *    Bogdan Pistol - undo support & large piece of initial implementation
  *    bobtarling
+ *    Thomas Neustupny
  *****************************************************************************/
 
 package org.argouml.model.euml;
@@ -39,6 +40,7 @@
 import org.eclipse.uml2.uml.Generalization;
 import org.eclipse.uml2.uml.Interface;
 import org.eclipse.uml2.uml.InterfaceRealization;
+import org.eclipse.uml2.uml.Manifestation;
 import org.eclipse.uml2.uml.MultiplicityElement;
 import org.eclipse.uml2.uml.NamedElement;
 import org.eclipse.uml2.uml.Namespace;
@@ -46,6 +48,7 @@
 import org.eclipse.uml2.uml.OpaqueBehavior;
 import org.eclipse.uml2.uml.Operation;
 import org.eclipse.uml2.uml.PackageImport;
+import org.eclipse.uml2.uml.PackageableElement;
 import org.eclipse.uml2.uml.Parameter;
 import org.eclipse.uml2.uml.PrimitiveType;
 import org.eclipse.uml2.uml.Property;
@@ -828,6 +831,17 @@
         return (Interface) run.getParams().get(0);
     }
 
+    public Object buildManifestation(Object utilizedElement) {
+        if (!(utilizedElement instanceof PackageableElement)) {
+            throw new IllegalArgumentException(
+                    "The utilized element must be an instance of PackageableElement."); //$NON-NLS-1$
+        }
+        Manifestation m = UMLFactory.eINSTANCE.createManifestation();
+        m.setName(((PackageableElement) utilizedElement).getName() + " manifestation");
+        m.setUtilizedElement((PackageableElement) utilizedElement);
+        return m;
+    }
+
     public Object buildMethod(String name) {
         // in UML2, we model a method as a Behavior (initially OpaqueBehavior)
         OpaqueBehavior method = UMLFactory.eINSTANCE.createOpaqueBehavior();

Modified: trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreHelperEUMLImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreHelperEUMLImpl.java?view=diff&pathrev=18435&r1=18434&r2=18435
==============================================================================
--- trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreHelperEUMLImpl.java	(original)
+++ trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreHelperEUMLImpl.java	2010-06-07 00:17:07-0700
@@ -9,7 +9,7 @@
  * Contributors:
  *    Tom Morris - initial framework & prototype implementation
  *    Bogdan Pistol - initial implementation
- *    thn
+ *    Thomas Neustupny
  *****************************************************************************/
 
 package org.argouml.model.euml;
@@ -33,6 +33,7 @@
 import org.eclipse.emf.edit.command.RemoveCommand;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.uml2.uml.AggregationKind;
+import org.eclipse.uml2.uml.Artifact;
 import org.eclipse.uml2.uml.Association;
 import org.eclipse.uml2.uml.Behavior;
 import org.eclipse.uml2.uml.BehavioralFeature;
@@ -49,12 +50,14 @@
 import org.eclipse.uml2.uml.Feature;
 import org.eclipse.uml2.uml.Generalization;
 import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Manifestation;
 import org.eclipse.uml2.uml.MultiplicityElement;
 import org.eclipse.uml2.uml.NamedElement;
 import org.eclipse.uml2.uml.Namespace;
 import org.eclipse.uml2.uml.Node;
 import org.eclipse.uml2.uml.OpaqueBehavior;
 import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.PackageableElement;
 import org.eclipse.uml2.uml.Parameter;
 import org.eclipse.uml2.uml.ParameterDirectionKind;
 import org.eclipse.uml2.uml.Property;
@@ -325,6 +328,19 @@
                         literal, handle));
     }
 
+    public void addManifestation(Object handle, Object manifestation) {
+        if (!(handle instanceof Artifact)) {
+            throw new IllegalArgumentException(
+                    "The handle must be instance of Artifact"); //$NON-NLS-1$
+        }
+        if (!(manifestation instanceof Manifestation)) {
+            throw new IllegalArgumentException(
+                    "The manifestation must be instance of Manifestation"); //$NON-NLS-1$
+        }
+        ((Artifact) handle).getManifestations()
+                .add((Manifestation) manifestation);
+    }
+
     public void addMethod(final Object handle, final Object method) {
         // In UML2.x there is no metaclass named Method, but we use the
         // 'method' association of BehavioralFeature
@@ -840,6 +856,21 @@
         return ((Classifier) achild).getGeneralization((Classifier) aparent);
     }
 
+    public Collection<PackageableElement> getUtilizedElements(Object artifact) {
+        if (!(artifact instanceof Artifact)) {
+            throw new IllegalArgumentException(
+                    "'artifact' must be instance of Artifact"); //$NON-NLS-1$
+        }
+        Collection<PackageableElement> c = new ArrayList<PackageableElement>();
+        for (Manifestation m : ((Artifact) artifact).getManifestations()) {
+            PackageableElement pe = m.getUtilizedElement();
+            if (pe != null) {
+                c.add(pe);
+            }
+        }
+        return c;
+    }
+
     public Collection<Operation> getOperationsInh(Object classifier) {
         if (!(classifier instanceof Classifier)) {
             throw new IllegalArgumentException(

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2617858

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.