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