Hi Michael and Jim,
I have trimmed down the various files so we can look at the relevant
parts. I think the 4 relevant files you need to see are:
test.profile.uml
test.uml
stereotype2stereotype.qvt
output.uml
I will paste the file below. Apologies for the dump as I could not
work out how to surround them with code tags.
Thanks for your help
Eban
//////////////////////
The UML Porfile:
//////////////////////
<?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="_vuQBkIepEd6G9vv1xOexfw" name="test"
metaclassReference="_hoX2kIeqEd6G9vv1xOexfw">
<eAnnotations xmi:id="_pts-8IeqEd6G9vv1xOexfw" source="http://
www.eclipse.org/uml2/2.0.0/UML">
<contents xmi:type="ecore:EPackage"
xmi:id="_9sDJ8OGDEeCcnryUetHFvw" name="test" nsURI="http:///schemas/
test/_9sAtsOGDEeCcnryUetHFvw/0" nsPrefix="test">
<eClassifiers xmi:type="ecore:EClass"
xmi:id="_9sDJ8eGDEeCcnryUetHFvw" name="domain">
<eAnnotations xmi:id="_9sDJ8uGDEeCcnryUetHFvw" source="http://
www.eclipse.org/uml2/2.0.0/UML" references="_bR-8QIeqEd6G9vv1xOexfw"/>
<eStructuralFeatures xmi:type="ecore:EReference"
xmi:id="_9sDJ8-GDEeCcnryUetHFvw" 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="_hoX2kIeqEd6G9vv1xOexfw">
<importedElement xmi:type="uml:Class" href="pathmap://
UML_METAMODELS/UML.metamodel.uml#Class"/>
</elementImport>
<packagedElement xmi:type="uml:Stereotype"
xmi:id="_bR-8QIeqEd6G9vv1xOexfw" name="domain">
<ownedAttribute xmi:id="_lcH1AoeqEd6G9vv1xOexfw" name="base_Class"
association="_lcH1AIeqEd6G9vv1xOexfw">
<type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/
UML.metamodel.uml#Class"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Extension"
xmi:id="_lcH1AIeqEd6G9vv1xOexfw" name="Class_domain"
memberEnd="_lcH1AYeqEd6G9vv1xOexfw _lcH1AoeqEd6G9vv1xOexfw">
<ownedEnd xmi:type="uml:ExtensionEnd"
xmi:id="_lcH1AYeqEd6G9vv1xOexfw" name="extension_domain"
type="_bR-8QIeqEd6G9vv1xOexfw" aggregation="composite"
association="_lcH1AIeqEd6G9vv1xOexfw"/>
</packagedElement>
</uml:Profile>
//////////////////////
The UML model:
//////////////////////
<?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:test="http:///schemas/test/_9sAtsOGDEeCcnryUetHFvw/0"
xmlns:uml="
http://www.eclipse.org/uml2/3.0.0/UML"
xsi:schemaLocation="http:///schemas/test/_9sAtsOGDEeCcnryUetHFvw/
0 ../../Profile/model/test.profile.uml#_9sDJ8OGDEeCcnryUetHFvw">
<uml:Package xmi:id="_bl5HgOGEEeCcnryUetHFvw"
name="au.edu.uq.itee.output">
<packagedElement xmi:type="uml:Class"
xmi:id="_bl68sOGEEeCcnryUetHFvw" name="Horse"/>
<profileApplication xmi:id="_uIFQUOGEEeCcnryUetHFvw">
<eAnnotations xmi:id="_uIF3YOGEEeCcnryUetHFvw" source="http://
www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage" href="../../Profile/
model/test.profile.uml#_9sDJ8OGDEeCcnryUetHFvw"/>
</eAnnotations>
<appliedProfile href="../../Profile/model/
test.profile.uml#_vuQBkIepEd6G9vv1xOexfw"/>
</profileApplication>
</uml:Package>
<test:domain xmi:id="_xukO0OGEEeCcnryUetHFvw"
base_Class="_bl68sOGEEeCcnryUetHFvw"/>
</xmi:XMI>
//////////////////////
The QVT file:
//////////////////////
TRANSFORMATION stereotype2stereotype : domain -> test
NAMESPACE
http://www.eclipse.org/emf/2002/Ecore
NAMESPACE
http://www.eclipse.org/uml2/3.0.0/UML
NAMESPACE platform:/resource/Profile/model/test.profile.uml
//Tracability for package to package
CLASS Package2PackageTrace {
Package srcPkg;
Package tgtPkg;
};
//Tracability for type to type
CLASS Type2TypeTrace {
EObject srcEObject;
EObject tgtEObject;
};
//Make a new package
RULE Package2Package
FORALL Package p
MAKE Package p2 {
name:
p.name;
profileApplication: p.profileApplication;
}
LINKING Package2PackageTrace WITH srcPkg=p, tgtPkg=p2
;
//Make a new domain stereotyped class in the target package
RULE Class2Domain
FORALL Class c, Package p, _ d
WHERE d.base_Class = c
AND p.packagedElement = c
AND Package2PackageTrace LINKS srcPkg=p, tgtPkg=p2
//TODO apply the stereotype
MAKE Class c2 {
name:
c.name;
}
SET p2.packagedElement = c2
LINKING Type2TypeTrace WITH srcEObject=c, tgtEObject=c2
;
//////////////////////
The output UML model:
//////////////////////
<?xml version="1.0" encoding="UTF-8"?>
<uml:Package 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="_UpwmYOGFEeCcnryUetHFvw" name="au.edu.uq.itee.output">
<packagedElement xmi:type="uml:Class"
xmi:id="_UpxNcOGFEeCcnryUetHFvw" name="Horse"/>
<profileApplication xmi:id="_uIFQUOGEEeCcnryUetHFvw"
appliedProfile="../../Profile/model/
test.profile.uml#_vuQBkIepEd6G9vv1xOexfw">
<eAnnotations xmi:id="_uIF3YOGEEeCcnryUetHFvw" source="http://
www.eclipse.org/uml2/2.0.0/UML" references="ecore:EPackage ../../
Profile/model/test.profile.uml#_9sDJ8OGDEeCcnryUetHFvw"/>
</profileApplication>
</uml:Package>