Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » UML2 » Applying stereotypes programmatically
Applying stereotypes programmatically [message #810669] Thu, 01 March 2012 06:57 Go to previous message
Martin is currently offline Martin
Messages: 35
Registered: July 2009
Member
Hi, I have a problem applying stereotypes programmatically. I get a
java.lang.IllegalArgumentException.

Here are is my output:
----------------------
org.eclipse.uml2.uml.internal.impl.StereotypeImpl@4b73469c (name:
Context2, visibility: <unset>) (isLeaf: false, isAbstract: false)
(isActive: false)
org.eclipse.uml2.uml.internal.impl.StereotypeImpl@4b73469c (name:
Context2, visibility: <unset>) (isLeaf: false, isAbstract: false)
(isActive: false)
Exception in thread "main" java.lang.IllegalArgumentException:
org.eclipse.uml2.uml.internal.impl.StereotypeImpl@4b73469c (name:
Context2, visibility: <unset>) (isLeaf: false, isAbstract: false)
(isActive: false)
at
org.eclipse.uml2.uml.internal.operations.ElementOperations.applyStereotype(ElementOperations.java:1413)
at
org.eclipse.uml2.uml.internal.impl.ElementImpl.applyStereotype(ElementImpl.java:510)
at Test2.main(Test2.java:32)
----------------------

Here is my Java-file: (Test2.java)
----------------------
import java.util.Map;

import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Model;
import org.eclipse.uml2.uml.Profile;
import org.eclipse.uml2.uml.Stereotype;
import org.eclipse.uml2.uml.UMLPackage;
import org.eclipse.uml2.uml.resource.UMLResource;


public class Test2 {
public static void main(String[] args) {
UMLPackage.eINSTANCE.eClass();
Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
Map<String, Object> m = reg.getExtensionToFactoryMap();
m.put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
m.put("http://www.eclipse.org/uml2/2.0.0/UML", UMLPackage.eINSTANCE);
ResourceSet resourceSet = new ResourceSetImpl();
Resource resource =
resourceSet.getResource(URI.createURI("testm.uml"), true);
Model uml = (Model) resource.getContents().get(0);
Profile p = (Profile) uml.getAllAppliedProfiles().get(0);
Class system = (Class) uml.getOwnedElements().get(0);
Stereotype s = system.getAppliedStereotypes().get(0);
System.out.println(s);
Class c = uml.createOwnedClass("RVM", true);
Stereotype st = p.getOwnedStereotype("Context2");
System.out.println(st);
c.applyStereotype(st);
}
}
----------------------

Here is my UML model: (testm.uml)
---------------------
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.1"
xmlns:xmi="http://schema.omg.org/spec/XMI/2.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
xmlns:profile="http:///schemas/profile/_G0T9cGOCEeGrzYhqs1PliA/0"
xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML"
xsi:schemaLocation="http:///schemas/profile/_G0T9cGOCEeGrzYhqs1PliA/0
testp2.profile.uml#_G0Xn0WOCEeGrzYhqs1PliA">
<uml:Model xmi:id="_PjiXYGOCEeGrzYhqs1PliA" name="model">
<packagedElement xmi:type="uml:Class"
xmi:id="_QAXdUGOCEeGrzYhqs1PliA" name="ClassA"/>
<profileApplication xmi:id="_SelMMGOCEeGrzYhqs1PliA">
<eAnnotations xmi:id="_Sft0oGOCEeGrzYhqs1PliA"
source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage"
href="testp2.profile.uml#_G0Xn0WOCEeGrzYhqs1PliA"/>
</eAnnotations>
<appliedProfile href="testp2.profile.uml#__4KDoGOBEeGrzYhqs1PliA"/>
</profileApplication>
</uml:Model>
<profile:Context2 xmi:id="_Tg7aAGOCEeGrzYhqs1PliA"
base_Class="_QAXdUGOCEeGrzYhqs1PliA"/>
</xmi:XMI>
---------------------

Here is my profile: (testp2.profile.uml)
-------------------
<?xml version="1.0" encoding="UTF-8"?>
<uml:Profile xmi:version="2.1"
xmlns:xmi="http://schema.omg.org/spec/XMI/2.1"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML"
xmi:id="__4KDoGOBEeGrzYhqs1PliA" name="profile"
metaclassReference="_EErucGOCEeGrzYhqs1PliA">
<eAnnotations xmi:id="_G0Xn0GOCEeGrzYhqs1PliA"
source="http://www.eclipse.org/uml2/2.0.0/UML">
<contents xmi:type="ecore:EPackage"
xmi:id="_G0Xn0WOCEeGrzYhqs1PliA" name="profile"
nsURI="http:///schemas/profile/_G0T9cGOCEeGrzYhqs1PliA/0"
nsPrefix="profile">
<eAnnotations xmi:id="_G0ZdAGOCEeGrzYhqs1PliA"
source="PapyrusVersion">
<details xmi:id="_G0ZdAWOCEeGrzYhqs1PliA" key="Version"
value="0.0.1"/>
<details xmi:id="_G0ZdAmOCEeGrzYhqs1PliA" key="Comment" value=""/>
<details xmi:id="_G0ZdA2OCEeGrzYhqs1PliA" key="Copyright"
value=""/>
<details xmi:id="_G0ZdBGOCEeGrzYhqs1PliA" key="Date"
value="2012-03-01"/>
<details xmi:id="_G0ZdBWOCEeGrzYhqs1PliA" key="Author" value=""/>
</eAnnotations>
<eClassifiers xmi:type="ecore:EClass"
xmi:id="_G0Xn0mOCEeGrzYhqs1PliA" name="Context2">
<eAnnotations xmi:id="_G0Xn02OCEeGrzYhqs1PliA"
source="http://www.eclipse.org/uml2/2.0.0/UML"
references="_BfiRIGOCEeGrzYhqs1PliA"/>
<eStructuralFeatures xmi:type="ecore:EReference"
xmi:id="_G0Xn1GOCEeGrzYhqs1PliA" name="base_Class" ordered="false"
lowerBound="1">
<eType xmi:type="ecore:EClass"
href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
</eStructuralFeatures>
</eClassifiers>
</contents>
</eAnnotations>
<elementImport xmi:id="_EErucGOCEeGrzYhqs1PliA" alias="Class">
<importedElement xmi:type="uml:Class"
href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
</elementImport>
<packagedElement xmi:type="uml:Stereotype"
xmi:id="_BfiRIGOCEeGrzYhqs1PliA" name="Context2">
<ownedAttribute xmi:id="_FNRHIGOCEeGrzYhqs1PliA" name="base_Class"
association="_FNRHIWOCEeGrzYhqs1PliA">
<type xmi:type="uml:Class"
href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Extension"
xmi:id="_FNRHIWOCEeGrzYhqs1PliA" name="E_Context2_Class0"
memberEnd="_FNRHImOCEeGrzYhqs1PliA _FNRHIGOCEeGrzYhqs1PliA">
<ownedEnd xmi:type="uml:ExtensionEnd"
xmi:id="_FNRHImOCEeGrzYhqs1PliA" name="extension_Context2"
type="_BfiRIGOCEeGrzYhqs1PliA" aggregation="composite"
association="_FNRHIWOCEeGrzYhqs1PliA"/>
</packagedElement>
</uml:Profile>
-------------------

Thanks in advance.
 
Read Message
Read Message
Read Message
Previous Topic:Referencing UML profiles and schemaLocation
Next Topic:Writing XML file from UML Model misses some data
Goto Forum:
  


Current Time: Sun May 19 20:56:50 EDT 2013

Powered by FUDForum. Page generated in 0.01706 seconds