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]].

Reply via email to