Applying stereotypes [message #478657] |
Sun, 02 August 2009 02:39  |
Eclipse User |
|
|
|
Hello, I am doing my first UML2 profile and have been following the
article below.
http://www.eclipse.org/modeling/mdt/uml2/docs/articles/Intro duction_to_UML2_Profiles/article.html
It all seems to go well up until the 'Applying Stereotypes' section step 3:
1) Select an element (i.e. <Property> pendingOrders : PurchaseOrder [0..*]
in <Class> Supplier) in the UML editor.
2) Select the UML Editor > Element > Apply Stereotype
menu item.
3) Choose a stereotype (i.e. ecore::EReference), press the Add button,
then press the OK button.
When the dialogue appears with the available choices it is empty!? Hmm, I
have tried it several times and playd around with it and searched the
newsgroup but I can't work it out. I am sure it will be simple as all the
doco states that doing a lightweight extension is easy :)
For what reason could the choices dialogue be empty? I have applied the
profile as per the previous steps in the article.
Thanks in advance
Eban
|
|
|
|
|
|
|
|
|
|
|
Re: Applying stereotypes [message #479202 is a reply to message #478672] |
Mon, 10 August 2009 04:44  |
Eclipse User |
|
|
|
Hi Eban,
Sorry for the late reply. I was away on a short vacation.
I'm glad you have it working now. That's right, Profiles are considered a
"Lightweight" extension of the meta-model and you have to decide which parts
of the meta-model to extend. It is possible to have a stereotype extend more
than one metaclass so that the stereotype can be applied on multiple types.
Also, the stereotype can be applied to all sub-classes of the extended
metaclass.
Tas
"Eban Escott" <eban.escott@uqconnect.edu.au> wrote in message
news:18672070559dba8e9a6e94aa41e3e28a$1@www.eclipse.org...
> Tas! I sort of worked it out from my last question to you? I quote from
> the tutorial
>
> "stereotypes defined in the profile can be applied to instances of the
> appropriate metaclasses (as per the defined extensions)"
>
> So, the stereotypes I created can only be applied to <Property> not
> <Class> because of the extension points I use?
>
> I don't fully understand it yet but I can now apply a stereotype from a
> profile to a property!!! Sweet.
>
> Thanks for your patience.
> Eban
>
|
|
|
Re: Applying stereotypes [message #627836 is a reply to message #478657] |
Mon, 03 August 2009 08:00  |
Eclipse User |
|
|
|
Hi Eban,
Have you applied the profile to the model as described in the previous step?
Do you see a <Profile Application> under the model.
Tas
"Eban Escott" <eban.escott@uqconnect.edu.au> wrote in message
news:fd8d76f91955252da3593d39eb0c29d8$1@www.eclipse.org...
> Hello, I am doing my first UML2 profile and have been following the
> article below.
>
> http://www.eclipse.org/modeling/mdt/uml2/docs/articles/Intro duction_to_UML2_Profiles/article.html
>
> It all seems to go well up until the 'Applying Stereotypes' section step
> 3:
>
> 1) Select an element (i.e. <Property> pendingOrders : PurchaseOrder [0..*]
> in <Class> Supplier) in the UML editor.
> 2) Select the UML Editor > Element > Apply Stereotype
menu item.
> 3) Choose a stereotype (i.e. ecore::EReference), press the Add button,
> then press the OK button.
>
> When the dialogue appears with the available choices it is empty!? Hmm, I
> have tried it several times and playd around with it and searched the
> newsgroup but I can't work it out. I am sure it will be simple as all the
> doco states that doing a lightweight extension is easy :)
>
> For what reason could the choices dialogue be empty? I have applied the
> profile as per the previous steps in the article.
>
> Thanks in advance
> Eban
>
|
|
|
Re: Applying stereotypes [message #627845 is a reply to message #478658] |
Tue, 04 August 2009 19:19  |
Eclipse User |
|
|
|
Hi Tas, fair question and the answer is yes, I can see the <Profile
Application> with my profile name. Here is a snippet out of my model that
I am trying to apply the profile to ...
<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="_0_66AHTmEd6IgYzPRYD2Nw" name="InputV">
...
<profileApplication xmi:id="_itRSgH8tEd6YbOsakxhBTg">
<eAnnotations xmi:id="_itRSgX8tEd6YbOsakxhBTg"
source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage"
href="../../Profile/model/My.profile.uml#_UKhawX8tEd6YbOsakxhBTg "/>
</eAnnotations>
<appliedProfile
href="../../Profile/model/My.profile.uml#_i9mfcH8rEd6YbOsakxhBTg "/>
</profileApplication>
So, does this look ok? Then I guess the other possible mistake I have made
is in the profile itself. I don't normally like posting masses like this
but here it is ...
<?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="_i9mfcH8rEd6YbOsakxhBTg" name="my"
metaclassReference="_Fu--QH8tEd6YbOsakxhBTg">
<eAnnotations xmi:id="_UKhawH8tEd6YbOsakxhBTg"
source="http://www.eclipse.org/uml2/2.0.0/UML">
<contents xmi:type="ecore:EPackage" xmi:id="_UKhawX8tEd6YbOsakxhBTg"
name="my" nsURI="http:///schemas/my/_UKgzsH8tEd6YbOsakxhBTg/0"
nsPrefix="my">
<eClassifiers xmi:type="ecore:EClass"
xmi:id="_UKhawn8tEd6YbOsakxhBTg" name="EStructuralFeature" abstract="true">
<eAnnotations xmi:id="_UKhaw38tEd6YbOsakxhBTg"
source="http://www.eclipse.org/uml2/2.0.0/UML"
references="_BeCi8H8sEd6YbOsakxhBTg"/>
<eStructuralFeatures xmi:type="ecore:EAttribute"
xmi:id="_UKhaxH8tEd6YbOsakxhBTg" name="isTransient" ordered="false"
defaultValueLiteral="true">
<eType xmi:type="ecore:EDataType"
href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xmi:type="ecore:EClass"
xmi:id="_UKhaxn8tEd6YbOsakxhBTg" name="EAttribute" abstract="true"
eSuperTypes="_UKhawn8tEd6YbOsakxhBTg">
<eAnnotations xmi:id="_UKhax38tEd6YbOsakxhBTg"
source="http://www.eclipse.org/uml2/2.0.0/UML"
references="_HGeyIH8sEd6YbOsakxhBTg"/>
<eStructuralFeatures xmi:type="ecore:EReference"
xmi:id="_UKhayH8tEd6YbOsakxhBTg" name="base_Property" ordered="false"
lowerBound="1">
<eType xmi:type="ecore:EClass"
href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xmi:type="ecore:EClass"
xmi:id="_UKhay38tEd6YbOsakxhBTg" name="EReference" abstract="true"
eSuperTypes="_UKhawn8tEd6YbOsakxhBTg">
<eAnnotations xmi:id="_UKhazH8tEd6YbOsakxhBTg"
source="http://www.eclipse.org/uml2/2.0.0/UML"
references="_Mk2fUH8sEd6YbOsakxhBTg"/>
<eStructuralFeatures xmi:type="ecore:EReference"
xmi:id="_UKhazX8tEd6YbOsakxhBTg" name="base_Property" ordered="false"
lowerBound="1">
<eType xmi:type="ecore:EClass"
href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
</eStructuralFeatures>
</eClassifiers>
</contents>
</eAnnotations>
<elementImport xmi:id="_3qiBgH8rEd6YbOsakxhBTg">
<importedElement xmi:type="uml:PrimitiveType"
href=" pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolea n"/>
</elementImport>
<elementImport xmi:id="_3qiBgX8rEd6YbOsakxhBTg">
<importedElement xmi:type="uml:PrimitiveType"
href=" pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
</elementImport>
<elementImport xmi:id="_Fu--QH8tEd6YbOsakxhBTg">
<importedElement xmi:type="uml:Class"
href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
</elementImport>
<packagedElement xmi:type="uml:Stereotype"
xmi:id="_BeCi8H8sEd6YbOsakxhBTg" name="EStructuralFeature"
isAbstract="true">
<ownedAttribute xmi:id="_gOf_cH8sEd6YbOsakxhBTg" name="isTransient">
<type xmi:type="uml:PrimitiveType"
href=" pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolea n"/>
<lowerValue xmi:type="uml:LiteralInteger"
xmi:id="_n4PYAH8sEd6YbOsakxhBTg"/>
<defaultValue xmi:type="uml:LiteralBoolean"
xmi:id="_rdIbEH8sEd6YbOsakxhBTg" value="true"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype"
xmi:id="_HGeyIH8sEd6YbOsakxhBTg" name="EAttribute" isAbstract="true">
<generalization xmi:id="_SF7iQH8sEd6YbOsakxhBTg"
general="_BeCi8H8sEd6YbOsakxhBTg"/>
<ownedAttribute xmi:id="_NXaIMn8tEd6YbOsakxhBTg" name="base_Property"
association="_NXaIMH8tEd6YbOsakxhBTg">
<type xmi:type="uml:Class"
href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype"
xmi:id="_Mk2fUH8sEd6YbOsakxhBTg" name="EReference" isAbstract="true">
<generalization xmi:id="_Zz3eUH8sEd6YbOsakxhBTg"
general="_BeCi8H8sEd6YbOsakxhBTg"/>
<ownedAttribute xmi:id="_QVkicn8tEd6YbOsakxhBTg" name="base_Property"
association="_QVkicH8tEd6YbOsakxhBTg">
<type xmi:type="uml:Class"
href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Extension"
xmi:id="_NXaIMH8tEd6YbOsakxhBTg" name="Property_EAttribute"
memberEnd="_NXaIMX8tEd6YbOsakxhBTg _NXaIMn8tEd6YbOsakxhBTg">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_NXaIMX8tEd6YbOsakxhBTg"
name="extension_EAttribute" type="_HGeyIH8sEd6YbOsakxhBTg"
aggregation="composite" association="_NXaIMH8tEd6YbOsakxhBTg"/>
</packagedElement>
<packagedElement xmi:type="uml:Extension"
xmi:id="_QVkicH8tEd6YbOsakxhBTg" name="Property_EReference"
memberEnd="_QVkicX8tEd6YbOsakxhBTg _QVkicn8tEd6YbOsakxhBTg">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_QVkicX8tEd6YbOsakxhBTg"
name="extension_EReference" type="_Mk2fUH8sEd6YbOsakxhBTg"
aggregation="composite" association="_QVkicH8tEd6YbOsakxhBTg"/>
</packagedElement>
</uml:Profile>
Thanks again Tas!!
|
|
|
Re: Applying stereotypes [message #627846 is a reply to message #478665] |
Tue, 04 August 2009 19:38  |
Eclipse User |
|
|
|
Eban,
Is the profile in the same location relative to the model when you load
it as when you saved it (after applying the profile)?
Kenn
Eban Escott wrote:
> Hi Tas, fair question and the answer is yes, I can see the <Profile
> Application> with my profile name. Here is a snippet out of my model
> that I am trying to apply the profile to ...
>
> <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="_0_66AHTmEd6IgYzPRYD2Nw" name="InputV">
>
> ..
>
> <profileApplication xmi:id="_itRSgH8tEd6YbOsakxhBTg">
> <eAnnotations xmi:id="_itRSgX8tEd6YbOsakxhBTg"
> source="http://www.eclipse.org/uml2/2.0.0/UML">
> <references xmi:type="ecore:EPackage"
> href="../../Profile/model/My.profile.uml#_UKhawX8tEd6YbOsakxhBTg "/>
> </eAnnotations>
> <appliedProfile
> href="../../Profile/model/My.profile.uml#_i9mfcH8rEd6YbOsakxhBTg "/>
> </profileApplication>
>
> So, does this look ok? Then I guess the other possible mistake I have
> made is in the profile itself. I don't normally like posting masses like
> this but here it is ...
>
> <?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="_i9mfcH8rEd6YbOsakxhBTg" name="my"
> metaclassReference="_Fu--QH8tEd6YbOsakxhBTg">
> <eAnnotations xmi:id="_UKhawH8tEd6YbOsakxhBTg"
> source="http://www.eclipse.org/uml2/2.0.0/UML">
> <contents xmi:type="ecore:EPackage" xmi:id="_UKhawX8tEd6YbOsakxhBTg"
> name="my" nsURI="http:///schemas/my/_UKgzsH8tEd6YbOsakxhBTg/0"
> nsPrefix="my">
> <eClassifiers xmi:type="ecore:EClass"
> xmi:id="_UKhawn8tEd6YbOsakxhBTg" name="EStructuralFeature" abstract="true">
> <eAnnotations xmi:id="_UKhaw38tEd6YbOsakxhBTg"
> source="http://www.eclipse.org/uml2/2.0.0/UML"
> references="_BeCi8H8sEd6YbOsakxhBTg"/>
> <eStructuralFeatures xmi:type="ecore:EAttribute"
> xmi:id="_UKhaxH8tEd6YbOsakxhBTg" name="isTransient" ordered="false"
> defaultValueLiteral="true">
> <eType xmi:type="ecore:EDataType"
> href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> </eStructuralFeatures>
> </eClassifiers>
> <eClassifiers xmi:type="ecore:EClass"
> xmi:id="_UKhaxn8tEd6YbOsakxhBTg" name="EAttribute" abstract="true"
> eSuperTypes="_UKhawn8tEd6YbOsakxhBTg">
> <eAnnotations xmi:id="_UKhax38tEd6YbOsakxhBTg"
> source="http://www.eclipse.org/uml2/2.0.0/UML"
> references="_HGeyIH8sEd6YbOsakxhBTg"/>
> <eStructuralFeatures xmi:type="ecore:EReference"
> xmi:id="_UKhayH8tEd6YbOsakxhBTg" name="base_Property" ordered="false"
> lowerBound="1">
> <eType xmi:type="ecore:EClass"
> href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
> </eStructuralFeatures>
> </eClassifiers>
> <eClassifiers xmi:type="ecore:EClass"
> xmi:id="_UKhay38tEd6YbOsakxhBTg" name="EReference" abstract="true"
> eSuperTypes="_UKhawn8tEd6YbOsakxhBTg">
> <eAnnotations xmi:id="_UKhazH8tEd6YbOsakxhBTg"
> source="http://www.eclipse.org/uml2/2.0.0/UML"
> references="_Mk2fUH8sEd6YbOsakxhBTg"/>
> <eStructuralFeatures xmi:type="ecore:EReference"
> xmi:id="_UKhazX8tEd6YbOsakxhBTg" name="base_Property" ordered="false"
> lowerBound="1">
> <eType xmi:type="ecore:EClass"
> href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
> </eStructuralFeatures>
> </eClassifiers>
> </contents>
> </eAnnotations>
> <elementImport xmi:id="_3qiBgH8rEd6YbOsakxhBTg">
> <importedElement xmi:type="uml:PrimitiveType"
> href=" pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolea n"/>
> </elementImport>
> <elementImport xmi:id="_3qiBgX8rEd6YbOsakxhBTg">
> <importedElement xmi:type="uml:PrimitiveType"
> href=" pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
> </elementImport>
> <elementImport xmi:id="_Fu--QH8tEd6YbOsakxhBTg">
> <importedElement xmi:type="uml:Class"
> href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
> </elementImport>
> <packagedElement xmi:type="uml:Stereotype"
> xmi:id="_BeCi8H8sEd6YbOsakxhBTg" name="EStructuralFeature"
> isAbstract="true">
> <ownedAttribute xmi:id="_gOf_cH8sEd6YbOsakxhBTg" name="isTransient">
> <type xmi:type="uml:PrimitiveType"
> href=" pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolea n"/>
> <lowerValue xmi:type="uml:LiteralInteger"
> xmi:id="_n4PYAH8sEd6YbOsakxhBTg"/>
> <defaultValue xmi:type="uml:LiteralBoolean"
> xmi:id="_rdIbEH8sEd6YbOsakxhBTg" value="true"/>
> </ownedAttribute>
> </packagedElement>
> <packagedElement xmi:type="uml:Stereotype"
> xmi:id="_HGeyIH8sEd6YbOsakxhBTg" name="EAttribute" isAbstract="true">
> <generalization xmi:id="_SF7iQH8sEd6YbOsakxhBTg"
> general="_BeCi8H8sEd6YbOsakxhBTg"/>
> <ownedAttribute xmi:id="_NXaIMn8tEd6YbOsakxhBTg" name="base_Property"
> association="_NXaIMH8tEd6YbOsakxhBTg">
> <type xmi:type="uml:Class"
> href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
> </ownedAttribute>
> </packagedElement>
> <packagedElement xmi:type="uml:Stereotype"
> xmi:id="_Mk2fUH8sEd6YbOsakxhBTg" name="EReference" isAbstract="true">
> <generalization xmi:id="_Zz3eUH8sEd6YbOsakxhBTg"
> general="_BeCi8H8sEd6YbOsakxhBTg"/>
> <ownedAttribute xmi:id="_QVkicn8tEd6YbOsakxhBTg" name="base_Property"
> association="_QVkicH8tEd6YbOsakxhBTg">
> <type xmi:type="uml:Class"
> href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
> </ownedAttribute>
> </packagedElement>
> <packagedElement xmi:type="uml:Extension"
> xmi:id="_NXaIMH8tEd6YbOsakxhBTg" name="Property_EAttribute"
> memberEnd="_NXaIMX8tEd6YbOsakxhBTg _NXaIMn8tEd6YbOsakxhBTg">
> <ownedEnd xmi:type="uml:ExtensionEnd"
> xmi:id="_NXaIMX8tEd6YbOsakxhBTg" name="extension_EAttribute"
> type="_HGeyIH8sEd6YbOsakxhBTg" aggregation="composite"
> association="_NXaIMH8tEd6YbOsakxhBTg"/>
> </packagedElement>
> <packagedElement xmi:type="uml:Extension"
> xmi:id="_QVkicH8tEd6YbOsakxhBTg" name="Property_EReference"
> memberEnd="_QVkicX8tEd6YbOsakxhBTg _QVkicn8tEd6YbOsakxhBTg">
> <ownedEnd xmi:type="uml:ExtensionEnd"
> xmi:id="_QVkicX8tEd6YbOsakxhBTg" name="extension_EReference"
> type="_Mk2fUH8sEd6YbOsakxhBTg" aggregation="composite"
> association="_QVkicH8tEd6YbOsakxhBTg"/>
> </packagedElement>
> </uml:Profile>
>
> Thanks again Tas!!
>
|
|
|
Re: Applying stereotypes [message #627848 is a reply to message #478665] |
Wed, 05 August 2009 06:05  |
Eclipse User |
|
|
|
Hi Eban,
I think I see the problem. Your EAttribute and EReference stereotypes are
declared as abstract. You need to change isAbstract to false for both those
stereotypes. EStructuralFeature should remain abstract. I think you'll need
to define the profile again and reapply it.
Tas
"Eban Escott" <eban.escott@uqconnect.edu.au> wrote in message
news:9b04da2e9a22a36f8a66dba47d9ea645$1@www.eclipse.org...
> Hi Tas, fair question and the answer is yes, I can see the <Profile
> Application> with my profile name. Here is a snippet out of my model that
> I am trying to apply the profile to ...
>
> <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="_0_66AHTmEd6IgYzPRYD2Nw" name="InputV">
>
> ..
>
> <profileApplication xmi:id="_itRSgH8tEd6YbOsakxhBTg">
> <eAnnotations xmi:id="_itRSgX8tEd6YbOsakxhBTg"
> source="http://www.eclipse.org/uml2/2.0.0/UML">
> <references xmi:type="ecore:EPackage"
> href="../../Profile/model/My.profile.uml#_UKhawX8tEd6YbOsakxhBTg "/>
> </eAnnotations>
> <appliedProfile
> href="../../Profile/model/My.profile.uml#_i9mfcH8rEd6YbOsakxhBTg "/>
> </profileApplication>
>
> So, does this look ok? Then I guess the other possible mistake I have made
> is in the profile itself. I don't normally like posting masses like this
> but here it is ...
>
> <?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="_i9mfcH8rEd6YbOsakxhBTg" name="my"
> metaclassReference="_Fu--QH8tEd6YbOsakxhBTg">
> <eAnnotations xmi:id="_UKhawH8tEd6YbOsakxhBTg"
> source="http://www.eclipse.org/uml2/2.0.0/UML">
> <contents xmi:type="ecore:EPackage" xmi:id="_UKhawX8tEd6YbOsakxhBTg"
> name="my" nsURI="http:///schemas/my/_UKgzsH8tEd6YbOsakxhBTg/0"
> nsPrefix="my">
> <eClassifiers xmi:type="ecore:EClass"
> xmi:id="_UKhawn8tEd6YbOsakxhBTg" name="EStructuralFeature"
> abstract="true">
> <eAnnotations xmi:id="_UKhaw38tEd6YbOsakxhBTg"
> source="http://www.eclipse.org/uml2/2.0.0/UML"
> references="_BeCi8H8sEd6YbOsakxhBTg"/>
> <eStructuralFeatures xmi:type="ecore:EAttribute"
> xmi:id="_UKhaxH8tEd6YbOsakxhBTg" name="isTransient" ordered="false"
> defaultValueLiteral="true">
> <eType xmi:type="ecore:EDataType"
> href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
> </eStructuralFeatures>
> </eClassifiers>
> <eClassifiers xmi:type="ecore:EClass"
> xmi:id="_UKhaxn8tEd6YbOsakxhBTg" name="EAttribute" abstract="true"
> eSuperTypes="_UKhawn8tEd6YbOsakxhBTg">
> <eAnnotations xmi:id="_UKhax38tEd6YbOsakxhBTg"
> source="http://www.eclipse.org/uml2/2.0.0/UML"
> references="_HGeyIH8sEd6YbOsakxhBTg"/>
> <eStructuralFeatures xmi:type="ecore:EReference"
> xmi:id="_UKhayH8tEd6YbOsakxhBTg" name="base_Property" ordered="false"
> lowerBound="1">
> <eType xmi:type="ecore:EClass"
> href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
> </eStructuralFeatures>
> </eClassifiers>
> <eClassifiers xmi:type="ecore:EClass"
> xmi:id="_UKhay38tEd6YbOsakxhBTg" name="EReference" abstract="true"
> eSuperTypes="_UKhawn8tEd6YbOsakxhBTg">
> <eAnnotations xmi:id="_UKhazH8tEd6YbOsakxhBTg"
> source="http://www.eclipse.org/uml2/2.0.0/UML"
> references="_Mk2fUH8sEd6YbOsakxhBTg"/>
> <eStructuralFeatures xmi:type="ecore:EReference"
> xmi:id="_UKhazX8tEd6YbOsakxhBTg" name="base_Property" ordered="false"
> lowerBound="1">
> <eType xmi:type="ecore:EClass"
> href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
> </eStructuralFeatures>
> </eClassifiers>
> </contents>
> </eAnnotations>
> <elementImport xmi:id="_3qiBgH8rEd6YbOsakxhBTg">
> <importedElement xmi:type="uml:PrimitiveType"
> href=" pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolea n"/>
> </elementImport>
> <elementImport xmi:id="_3qiBgX8rEd6YbOsakxhBTg">
> <importedElement xmi:type="uml:PrimitiveType"
> href=" pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
> </elementImport>
> <elementImport xmi:id="_Fu--QH8tEd6YbOsakxhBTg">
> <importedElement xmi:type="uml:Class"
> href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
> </elementImport>
> <packagedElement xmi:type="uml:Stereotype"
> xmi:id="_BeCi8H8sEd6YbOsakxhBTg" name="EStructuralFeature"
> isAbstract="true">
> <ownedAttribute xmi:id="_gOf_cH8sEd6YbOsakxhBTg" name="isTransient">
> <type xmi:type="uml:PrimitiveType"
> href=" pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolea n"/>
> <lowerValue xmi:type="uml:LiteralInteger"
> xmi:id="_n4PYAH8sEd6YbOsakxhBTg"/>
> <defaultValue xmi:type="uml:LiteralBoolean"
> xmi:id="_rdIbEH8sEd6YbOsakxhBTg" value="true"/>
> </ownedAttribute>
> </packagedElement>
> <packagedElement xmi:type="uml:Stereotype"
> xmi:id="_HGeyIH8sEd6YbOsakxhBTg" name="EAttribute" isAbstract="true">
> <generalization xmi:id="_SF7iQH8sEd6YbOsakxhBTg"
> general="_BeCi8H8sEd6YbOsakxhBTg"/>
> <ownedAttribute xmi:id="_NXaIMn8tEd6YbOsakxhBTg" name="base_Property"
> association="_NXaIMH8tEd6YbOsakxhBTg">
> <type xmi:type="uml:Class"
> href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
> </ownedAttribute>
> </packagedElement>
> <packagedElement xmi:type="uml:Stereotype"
> xmi:id="_Mk2fUH8sEd6YbOsakxhBTg" name="EReference" isAbstract="true">
> <generalization xmi:id="_Zz3eUH8sEd6YbOsakxhBTg"
> general="_BeCi8H8sEd6YbOsakxhBTg"/>
> <ownedAttribute xmi:id="_QVkicn8tEd6YbOsakxhBTg" name="base_Property"
> association="_QVkicH8tEd6YbOsakxhBTg">
> <type xmi:type="uml:Class"
> href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
> </ownedAttribute>
> </packagedElement>
> <packagedElement xmi:type="uml:Extension"
> xmi:id="_NXaIMH8tEd6YbOsakxhBTg" name="Property_EAttribute"
> memberEnd="_NXaIMX8tEd6YbOsakxhBTg _NXaIMn8tEd6YbOsakxhBTg">
> <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_NXaIMX8tEd6YbOsakxhBTg"
> name="extension_EAttribute" type="_HGeyIH8sEd6YbOsakxhBTg"
> aggregation="composite" association="_NXaIMH8tEd6YbOsakxhBTg"/>
> </packagedElement>
> <packagedElement xmi:type="uml:Extension"
> xmi:id="_QVkicH8tEd6YbOsakxhBTg" name="Property_EReference"
> memberEnd="_QVkicX8tEd6YbOsakxhBTg _QVkicn8tEd6YbOsakxhBTg">
> <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_QVkicX8tEd6YbOsakxhBTg"
> name="extension_EReference" type="_Mk2fUH8sEd6YbOsakxhBTg"
> aggregation="composite" association="_QVkicH8tEd6YbOsakxhBTg"/>
> </packagedElement>
> </uml:Profile>
>
> Thanks again Tas!!
>
|
|
|
Re: Applying stereotypes [message #627849 is a reply to message #478668] |
Wed, 05 August 2009 06:08  |
Eclipse User |
|
|
|
Also, notice that in the UML editor abstract elements appear in italics.
"Tas Frangoullides" <tfrangoullides@model-driven.co.uk> wrote in message
news:h5blhe$29q$1@build.eclipse.org...
> Hi Eban,
>
> I think I see the problem. Your EAttribute and EReference stereotypes are
> declared as abstract. You need to change isAbstract to false for both
> those stereotypes. EStructuralFeature should remain abstract. I think
> you'll need to define the profile again and reapply it.
>
> Tas
>
>
> "Eban Escott" <eban.escott@uqconnect.edu.au> wrote in message
> news:9b04da2e9a22a36f8a66dba47d9ea645$1@www.eclipse.org...
>> Hi Tas, fair question and the answer is yes, I can see the <Profile
>> Application> with my profile name. Here is a snippet out of my model that
>> I am trying to apply the profile to ...
>>
>> <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="_0_66AHTmEd6IgYzPRYD2Nw" name="InputV">
>>
>> ..
>>
>> <profileApplication xmi:id="_itRSgH8tEd6YbOsakxhBTg">
>> <eAnnotations xmi:id="_itRSgX8tEd6YbOsakxhBTg"
>> source="http://www.eclipse.org/uml2/2.0.0/UML">
>> <references xmi:type="ecore:EPackage"
>> href="../../Profile/model/My.profile.uml#_UKhawX8tEd6YbOsakxhBTg "/>
>> </eAnnotations>
>> <appliedProfile
>> href="../../Profile/model/My.profile.uml#_i9mfcH8rEd6YbOsakxhBTg "/>
>> </profileApplication>
>>
>> So, does this look ok? Then I guess the other possible mistake I have
>> made is in the profile itself. I don't normally like posting masses like
>> this but here it is ...
>>
>> <?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="_i9mfcH8rEd6YbOsakxhBTg" name="my"
>> metaclassReference="_Fu--QH8tEd6YbOsakxhBTg">
>> <eAnnotations xmi:id="_UKhawH8tEd6YbOsakxhBTg"
>> source="http://www.eclipse.org/uml2/2.0.0/UML">
>> <contents xmi:type="ecore:EPackage" xmi:id="_UKhawX8tEd6YbOsakxhBTg"
>> name="my" nsURI="http:///schemas/my/_UKgzsH8tEd6YbOsakxhBTg/0"
>> nsPrefix="my">
>> <eClassifiers xmi:type="ecore:EClass"
>> xmi:id="_UKhawn8tEd6YbOsakxhBTg" name="EStructuralFeature"
>> abstract="true">
>> <eAnnotations xmi:id="_UKhaw38tEd6YbOsakxhBTg"
>> source="http://www.eclipse.org/uml2/2.0.0/UML"
>> references="_BeCi8H8sEd6YbOsakxhBTg"/>
>> <eStructuralFeatures xmi:type="ecore:EAttribute"
>> xmi:id="_UKhaxH8tEd6YbOsakxhBTg" name="isTransient" ordered="false"
>> defaultValueLiteral="true">
>> <eType xmi:type="ecore:EDataType"
>> href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
>> </eStructuralFeatures>
>> </eClassifiers>
>> <eClassifiers xmi:type="ecore:EClass"
>> xmi:id="_UKhaxn8tEd6YbOsakxhBTg" name="EAttribute" abstract="true"
>> eSuperTypes="_UKhawn8tEd6YbOsakxhBTg">
>> <eAnnotations xmi:id="_UKhax38tEd6YbOsakxhBTg"
>> source="http://www.eclipse.org/uml2/2.0.0/UML"
>> references="_HGeyIH8sEd6YbOsakxhBTg"/>
>> <eStructuralFeatures xmi:type="ecore:EReference"
>> xmi:id="_UKhayH8tEd6YbOsakxhBTg" name="base_Property" ordered="false"
>> lowerBound="1">
>> <eType xmi:type="ecore:EClass"
>> href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
>> </eStructuralFeatures>
>> </eClassifiers>
>> <eClassifiers xmi:type="ecore:EClass"
>> xmi:id="_UKhay38tEd6YbOsakxhBTg" name="EReference" abstract="true"
>> eSuperTypes="_UKhawn8tEd6YbOsakxhBTg">
>> <eAnnotations xmi:id="_UKhazH8tEd6YbOsakxhBTg"
>> source="http://www.eclipse.org/uml2/2.0.0/UML"
>> references="_Mk2fUH8sEd6YbOsakxhBTg"/>
>> <eStructuralFeatures xmi:type="ecore:EReference"
>> xmi:id="_UKhazX8tEd6YbOsakxhBTg" name="base_Property" ordered="false"
>> lowerBound="1">
>> <eType xmi:type="ecore:EClass"
>> href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
>> </eStructuralFeatures>
>> </eClassifiers>
>> </contents>
>> </eAnnotations>
>> <elementImport xmi:id="_3qiBgH8rEd6YbOsakxhBTg">
>> <importedElement xmi:type="uml:PrimitiveType"
>> href=" pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolea n"/>
>> </elementImport>
>> <elementImport xmi:id="_3qiBgX8rEd6YbOsakxhBTg">
>> <importedElement xmi:type="uml:PrimitiveType"
>> href=" pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
>> </elementImport>
>> <elementImport xmi:id="_Fu--QH8tEd6YbOsakxhBTg">
>> <importedElement xmi:type="uml:Class"
>> href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
>> </elementImport>
>> <packagedElement xmi:type="uml:Stereotype"
>> xmi:id="_BeCi8H8sEd6YbOsakxhBTg" name="EStructuralFeature"
>> isAbstract="true">
>> <ownedAttribute xmi:id="_gOf_cH8sEd6YbOsakxhBTg" name="isTransient">
>> <type xmi:type="uml:PrimitiveType"
>> href=" pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolea n"/>
>> <lowerValue xmi:type="uml:LiteralInteger"
>> xmi:id="_n4PYAH8sEd6YbOsakxhBTg"/>
>> <defaultValue xmi:type="uml:LiteralBoolean"
>> xmi:id="_rdIbEH8sEd6YbOsakxhBTg" value="true"/>
>> </ownedAttribute>
>> </packagedElement>
>> <packagedElement xmi:type="uml:Stereotype"
>> xmi:id="_HGeyIH8sEd6YbOsakxhBTg" name="EAttribute" isAbstract="true">
>> <generalization xmi:id="_SF7iQH8sEd6YbOsakxhBTg"
>> general="_BeCi8H8sEd6YbOsakxhBTg"/>
>> <ownedAttribute xmi:id="_NXaIMn8tEd6YbOsakxhBTg" name="base_Property"
>> association="_NXaIMH8tEd6YbOsakxhBTg">
>> <type xmi:type="uml:Class"
>> href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
>> </ownedAttribute>
>> </packagedElement>
>> <packagedElement xmi:type="uml:Stereotype"
>> xmi:id="_Mk2fUH8sEd6YbOsakxhBTg" name="EReference" isAbstract="true">
>> <generalization xmi:id="_Zz3eUH8sEd6YbOsakxhBTg"
>> general="_BeCi8H8sEd6YbOsakxhBTg"/>
>> <ownedAttribute xmi:id="_QVkicn8tEd6YbOsakxhBTg" name="base_Property"
>> association="_QVkicH8tEd6YbOsakxhBTg">
>> <type xmi:type="uml:Class"
>> href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
>> </ownedAttribute>
>> </packagedElement>
>> <packagedElement xmi:type="uml:Extension"
>> xmi:id="_NXaIMH8tEd6YbOsakxhBTg" name="Property_EAttribute"
>> memberEnd="_NXaIMX8tEd6YbOsakxhBTg _NXaIMn8tEd6YbOsakxhBTg">
>> <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_NXaIMX8tEd6YbOsakxhBTg"
>> name="extension_EAttribute" type="_HGeyIH8sEd6YbOsakxhBTg"
>> aggregation="composite" association="_NXaIMH8tEd6YbOsakxhBTg"/>
>> </packagedElement>
>> <packagedElement xmi:type="uml:Extension"
>> xmi:id="_QVkicH8tEd6YbOsakxhBTg" name="Property_EReference"
>> memberEnd="_QVkicX8tEd6YbOsakxhBTg _QVkicn8tEd6YbOsakxhBTg">
>> <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_QVkicX8tEd6YbOsakxhBTg"
>> name="extension_EReference" type="_Mk2fUH8sEd6YbOsakxhBTg"
>> aggregation="composite" association="_QVkicH8tEd6YbOsakxhBTg"/>
>> </packagedElement>
>> </uml:Profile>
>>
>> Thanks again Tas!!
>>
>
|
|
|
Re: Applying stereotypes [message #627850 is a reply to message #478666] |
Wed, 05 August 2009 19:21  |
Eclipse User |
|
|
|
Hey Kenn, I have not moved the profile after defining and saving it. I
have have 2 projects in my workspace, one with the .profile.uml and one
with the .uml.
Firstly, for the .profile.uml I do ...
1. Highlight the <profile> twirl-down
2. UML Editor -> Profile -> Define and it reports operation success
3. I then save it by File -> Save
From within the .uml I do ...
1. UML Editor -> Load Resource -> Choose Browse Workspace
2. Navigate to the other project and choose the .profile.uml (it appears
in the list below the package)
3. Highlight the <Package> twirl-down
4. UML Editor -> Package -> Apply Profile ... add the profile (<Profile
Application> appears)
Is this the correct procedure?
Thanks heaps Kenn for the help.
Eban
|
|
|
Re: Applying stereotypes [message #627851 is a reply to message #478669] |
Wed, 05 August 2009 19:30  |
Eclipse User |
|
|
|
Hey Tas, I got excited as I thought this could be it ... but no :( I made
the changes and it is still the same. I also downloaded the source code
down the bottom of
http://www.eclipse.org/modeling/mdt/uml2/docs/articles/Getti ng_Started_with_UML2/article.html
Inside the zip file is a the profile example I am trying to create but
using a different profile name ... Ecore.profile.uml. I copied this into
my workspace, defined it, saved it, loaded it and still no luck.
I am starting to feel a little stupid as all the doco says applying
stereotypes is easy but I can't seem to get it. Could you maybe try with
the profile from the zip file?
Also, I am stretching here ... but are there any restrictions on what
packaged elements you can apply a stereotype? I am trying to apply a
stereotype to a class.
Thanks heaps!
Eban
|
|
|
Re: Applying stereotypes [message #627852 is a reply to message #478671] |
Wed, 05 August 2009 19:50  |
Eclipse User |
|
|
|
Tas! I sort of worked it out from my last question to you? I quote from
the tutorial
"stereotypes defined in the profile can be applied to instances of the
appropriate metaclasses (as per the defined extensions)"
So, the stereotypes I created can only be applied to <Property> not
<Class> because of the extension points I use?
I don't fully understand it yet but I can now apply a stereotype from a
profile to a property!!! Sweet.
Thanks for your patience.
Eban
|
|
|
Re: Applying stereotypes [message #627857 is a reply to message #478672] |
Mon, 10 August 2009 04:44  |
Eclipse User |
|
|
|
Hi Eban,
Sorry for the late reply. I was away on a short vacation.
I'm glad you have it working now. That's right, Profiles are considered a
"Lightweight" extension of the meta-model and you have to decide which parts
of the meta-model to extend. It is possible to have a stereotype extend more
than one metaclass so that the stereotype can be applied on multiple types.
Also, the stereotype can be applied to all sub-classes of the extended
metaclass.
Tas
"Eban Escott" <eban.escott@uqconnect.edu.au> wrote in message
news:18672070559dba8e9a6e94aa41e3e28a$1@www.eclipse.org...
> Tas! I sort of worked it out from my last question to you? I quote from
> the tutorial
>
> "stereotypes defined in the profile can be applied to instances of the
> appropriate metaclasses (as per the defined extensions)"
>
> So, the stereotypes I created can only be applied to <Property> not
> <Class> because of the extension points I use?
>
> I don't fully understand it yet but I can now apply a stereotype from a
> profile to a property!!! Sweet.
>
> Thanks for your patience.
> Eban
>
|
|
|
Powered by
FUDForum. Page generated in 0.08507 seconds