Home » Modeling » GMF (Graphical Modeling Framework) » Re: Constraints in Ecore for GMF
Re: Constraints in Ecore for GMF [message #2529] |
Wed, 02 August 2006 13:03 |
Radomil Dvorak Messages: 249 Registered: July 2009 |
Senior Member |
|
|
Hi Madanagopal,
All your Ecore level constraints will get involved by GMF Diagram\Validate
action if you enable it
in gmfgen.
With GMF audit rules you can define constraints involving additonal aspects
for your domain model
from the diagraming perspective. For instance, best practices and modeling
styles you would like to promote and
which may be violated while your domain model is still valid.
Moreover, you can define constraints for the diagram notation model to guard
also some visual aspects.
As disscused earlier in gmf newsgroup, all audits map to EMFT Validation
constraint definitions.
If you wish, keep all your constraints as basic EMF constraints and GMF
editor can contribute with additional UI services.
Alternatively, use EMFT Validation framework to get cool OCL support and UI
for constraint registry management.
Both mentioned above will be active in GMF generated diagram editors if
enabled in gmfgen.
What you are trying to do is definition of an OCL like constraint as a basic
EMF constraint which is not going to work.
Perhaps, you could try to initially model your constraints as GMF audits as
you can segregate them in a separate validation
plugin later on. Just by copying the editor's plugin.xml fragment defining
EMFT constraintProvider extension points.
This way you can focus on the constraint logic itself while getting all the
EMFT extension point plumbing for free and having in-place rule
validation within the context of the target domain elements (in *.gmfmap).
This should ensure that EMFT Validation registrations will be OK
and after getting some expertise you can stick to EMFT Validation framework
only.
I hope to have clarified this matter a bit to help you decide on the right
approach to use.
As for a tutorial, GMF existing tutorials already demonstrate audits
functionality.
Look at the GMF ecore diagram editor, try to enable validation in gmfgen and
re-generate. You will see how Ecore level
constraints are integrated.
PS: eclipse.modeling.gmf newsgroup created. Use it instead of
eclipse.technology.gmf
Regards,
/Radek
"Madanagopal" <madanagopal@gmail.com> wrote in message
news:op.tdnisxn66tuwl9@centrino.sts.tu-harburg.de...
Hello,
With reference to some previous posts
https://bugs.eclipse.org/bugs/show_bug.cgi?id=143580
i am currently trying to have constraints implemented at the Ecore level.
Moreover my requirement is to validate a class Firm with an attribute
"name" with constraint "self.name.size() > 0".
I have another possibility to implement this. Define an Audit Rule for
this constraint and then Enable the Validation Options in .gmfgen by
setting
Diagram -> Validation Decorators to "true"
Diagram -> Valdation Enabled to "true"
Providers -> Validation Provider Priority to "Medium".
This will generate diagram plugin which would have options Diagram->
Validate to validate my Model.
Now having constraints at Ecore level, what are the benifits that i get
when i use them for GMF, since I have to deal with lots of Constraints in
Design Level while writing Ecore and some in gmfmap.
Should i still have to make any changes while generating GMF Diagram
Editors with having Constraints in Ecore Level.
Please Post in your Comments.
An Example or a tutorial on this topic would be really helpful.
Madanagopal.
Attachments :
1. Ecore Snapshot
2. Ecore File
|
|
|
Re: Constraints in Ecore for GMF [message #8183 is a reply to message #2529] |
Mon, 07 August 2006 08:21 |
Madanagopal Messages: 39 Registered: July 2009 |
Member |
|
|
------------Dxp1ychupkmzzh1l7h5Jua
Content-Type: text/plain; format=flowed; delsp=yes; charset=iso-8859-15
Content-Transfer-Encoding: Quoted-Printable
Hello,
Thank you Radek for your long mail. Before you can point me further; all=
ow =
me to tell you wat i probable wish to do with Ecore Constraints.
Generally, GMF Audits and Link Mapping are the way to enforce OCL =
Constraints. I am interested to have OCL Constraints in Ecore level itse=
lf =
so that my model can be validated at this level and further i can =
implement the Constraints with Link Mapping.
What made me think this is possible:?
1. Since EMF has the inbuilt support for GMF and EMF Ecore editor can =
take OCL constraint as annotations with reference to =
http://www.eclipse.org/articles/Article-FromFrontendToCode-M DSDInPractic=
e/article.html.
2. And with the generated <package>Validator.java that contains the OCL=
=
Annotations, Can this be referenced to the gmfgen for model validation.
3. The above referenced link has got templates which help in generating=
=
the validation code for our model.
An example with the Constraints at Ecore level for GMF would be really =
helpful. Please post in your suggestions.
Please find my ecore file attached with this mail.
Regards,
Madanagopal
On Wed, 02 Aug 2006 15:03:14 +0200, Radek Dvorak =
<radek.dvorak@borland.com> wrote:
> Hi Madanagopal,
>
> All your Ecore level constraints will get involved by GMF =
> Diagram\Validate
> action if you enable it
> in gmfgen.
>
> With GMF audit rules you can define constraints involving additonal =
> aspects
> for your domain model
> from the diagraming perspective. For instance, best practices and =
> modeling
> styles you would like to promote and
> which may be violated while your domain model is still valid.
> Moreover, you can define constraints for the diagram notation model to=
=
> guard
> also some visual aspects.
> As disscused earlier in gmf newsgroup, all audits map to EMFT Validati=
on
> constraint definitions.
>
> If you wish, keep all your constraints as basic EMF constraints and GM=
F
> editor can contribute with additional UI services.
> Alternatively, use EMFT Validation framework to get cool OCL support a=
nd =
> UI
> for constraint registry management.
> Both mentioned above will be active in GMF generated diagram editors i=
f
> enabled in gmfgen.
>
> What you are trying to do is definition of an OCL like constraint as a=
=
> basic
> EMF constraint which is not going to work.
> Perhaps, you could try to initially model your constraints as GMF audi=
ts =
> as
> you can segregate them in a separate validation
> plugin later on. Just by copying the editor's plugin.xml fragment =
> defining
> EMFT constraintProvider extension points.
>
> This way you can focus on the constraint logic itself while getting al=
l =
> the
> EMFT extension point plumbing for free and having in-place rule
> validation within the context of the target domain elements (in =
> *.gmfmap).
> This should ensure that EMFT Validation registrations will be OK
> and after getting some expertise you can stick to EMFT Validation =
> framework
> only.
>
> I hope to have clarified this matter a bit to help you decide on the =
> right
> approach to use.
> As for a tutorial, GMF existing tutorials already demonstrate audits
> functionality.
> Look at the GMF ecore diagram editor, try to enable validation in gmfg=
en =
> and
> re-generate. You will see how Ecore level
> constraints are integrated.
>
> PS: eclipse.modeling.gmf newsgroup created. Use it instead of
> eclipse.technology.gmf
>
> Regards,
> /Radek
>
>
> "Madanagopal" <madanagopal@gmail.com> wrote in message
> news:op.tdnisxn66tuwl9@centrino.sts.tu-harburg.de...
> Hello,
>
> With reference to some previous posts
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=3D143580
> i am currently trying to have constraints implemented at the Ecore lev=
el.
>
> Moreover my requirement is to validate a class Firm with an attribute
> "name" with constraint "self.name.size() > 0".
>
> I have another possibility to implement this. Define an Audit Rule for=
> this constraint and then Enable the Validation Options in .gmfgen by
> setting
>
> Diagram -> Validation Decorators to "true"
> Diagram -> Valdation Enabled to "true"
> Providers -> Validation Provider Priority to "Medium".
>
> This will generate diagram plugin which would have options Diagram->
> Validate to validate my Model.
>
> Now having constraints at Ecore level, what are the benifits that i ge=
t
> when i use them for GMF, since I have to deal with lots of Constraints=
in
> Design Level while writing Ecore and some in gmfmap.
>
> Should i still have to make any changes while generating GMF Diagram
> Editors with having Constraints in Ecore Level.
>
> Please Post in your Comments.
> An Example or a tutorial on this topic would be really helpful.
>
> Madanagopal.
>
> Attachments :
> 1. Ecore Snapshot
> 2. Ecore File
>
>
------------Dxp1ychupkmzzh1l7h5Jua
Content-Disposition: attachment; filename=Employee.ecore
Content-Type: application/octet-stream; name=Employee.ecore
Content-Transfer-Encoding: Base64
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxlY29y ZTpF
UGFja2FnZSB4bWk6dmVyc2lvbj0iMi4wIg0KICAgIHhtbG5zOnhtaT0iaHR0 cDov
L3d3dy5vbWcub3JnL1hNSSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9y Zy8y
MDAxL1hNTFNjaGVtYS1pbnN0YW5jZSINCiAgICB4bWxuczplY29yZT0iaHR0 cDov
L3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSIgbmFtZT0iZW1wbG95 ZWUi
DQogICAgbnNVUkk9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvT0NML2V4YW1w bGVz
L2NvZGVnZW4vZW1wbG95ZWUiIG5zUHJlZml4PSJlbXAiPg0KICA8ZUNsYXNz aWZp
ZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNvbXBhbnkiPg0K ICAg
IDxlU3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmli dXRl
IiBuYW1lPSJuYW1lIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93 d3cu
ZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+DQogICAg PGVT
dHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2Ui IG5h
bWU9ImVtcGxveWVlcyIgdXBwZXJCb3VuZD0iLTEiDQogICAgICAgIGVUeXBl PSIj
Ly9FbXBsb3llZSIgY29udGFpbm1lbnQ9InRydWUiIGVPcHBvc2l0ZT0iIy8v RW1w
bG95ZWUvY29tcGFueSIvPg0KICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhz aTp0
eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkZXBhcnRtZW50cyIgdXBw ZXJC
b3VuZD0iLTEiDQogICAgICAgIGVUeXBlPSIjLy9EZXBhcnRtZW50IiBjb250 YWlu
bWVudD0idHJ1ZSIgZU9wcG9zaXRlPSIjLy9EZXBhcnRtZW50L2NvbXBhbnki Lz4N
CiAgPC9lQ2xhc3NpZmllcnM+DQogIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9 ImVj
b3JlOkVDbGFzcyIgbmFtZT0iRGVwYXJ0bWVudCI+DQogICAgPGVPcGVyYXRp b25z
IG5hbWU9InZhbGlkYXRlRW1wbG95ZWVzIiBlVHlwZT0iZWNvcmU6RURhdGFU eXBl
IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FQm9v bGVh
biI+DQogICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5l Y2xp
cHNlLm9yZy9PQ0wvZXhhbXBsZXMvb2NsIj4NCiAgICAgICAgPGRldGFpbHMg a2V5
PSJpbnZhcmlhbnQiIHZhbHVlPSJub3QgbWFuYWdlci5vY2xJc1VuZGVmaW5l ZCgp
IGltcGxpZXMgZW1wbG95ZWVzLT5ub3RFbXB0eSgpIi8+DQogICAgICA8L2VB bm5v
dGF0aW9ucz4NCiAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJkaWFnbm9zdGlj cyIg
ZVR5cGU9ImVjb3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3Jn L2Vt
Zi8yMDAyL0Vjb3JlIy8vRURpYWdub3N0aWNDaGFpbiIvPg0KICAgICAgPGVQ YXJh
bWV0ZXJzIG5hbWU9ImNvbnRleHQiIGVUeXBlPSJlY29yZTpFRGF0YVR5cGUg aHR0
cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VNYXAiLz4N CiAg
ICA8L2VPcGVyYXRpb25zPg0KICAgIDxlU3RydWN0dXJhbEZlYXR1cmVzIHhz aTp0
eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJtYW5hZ2VyIiBlVHlwZT0i Iy8v
RW1wbG95ZWUiLz4NCiAgICA8ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlw ZT0i
ZWNvcmU6RUF0dHJpYnV0ZSIgbmFtZT0iZGVwdElEIiBsb3dlckJvdW5kPSIx Ig0K
ICAgICAgICBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNs aXBz
ZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSW50IiBpRD0idHJ1ZSIvPg0KICAg IDxl
U3RydWN0dXJhbEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRl IiBu
YW1lPSJuYW1lIiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cu ZWNs
aXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+DQogICAgPGVT dHJ1
Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5h bWU9
ImVtcGxveWVlcyIgb3JkZXJlZD0iZmFsc2UiDQogICAgICAgIHVwcGVyQm91 bmQ9
Ii0xIiBlVHlwZT0iIy8vRW1wbG95ZWUiIGNoYW5nZWFibGU9ImZhbHNlIiB2 b2xh
dGlsZT0idHJ1ZSIgdHJhbnNpZW50PSJ0cnVlIg0KICAgICAgICBkZXJpdmVk PSJ0
cnVlIiBlT3Bwb3NpdGU9IiMvL0VtcGxveWVlL2RlcGFydG1lbnQiPg0KICAg ICAg
PGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcv T0NM
L2V4YW1wbGVzL29jbCI+DQogICAgICAgIDxkZXRhaWxzIGtleT0iZGVyaXZl IiB2
YWx1ZT0iaWYgbWFuYWdlci5vY2xJc1VuZGVmaW5lZCgpIHRoZW4gU2V0e30g ZWxz
ZSBtYW5hZ2VyLmRpcmVjdFJlcG9ydHMgZW5kaWYiLz4NCiAgICAgIDwvZUFu bm90
YXRpb25zPg0KICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCiAgICA8ZVN0 cnVj
dHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgbmFt ZT0i
Y29tcGFueSIgZVR5cGU9IiMvL0NvbXBhbnkiDQogICAgICAgIGVPcHBvc2l0 ZT0i
Iy8vQ29tcGFueS9kZXBhcnRtZW50cyIvPg0KICA8L2VDbGFzc2lmaWVycz4N CiAg
PGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJF bXBs
b3llZSI+DQogICAgPGVPcGVyYXRpb25zIG5hbWU9ImFsbFJlcG9ydHMiIG9y ZGVy
ZWQ9ImZhbHNlIiB1cHBlckJvdW5kPSItMSIgZVR5cGU9IiMvL0VtcGxveWVl Ij4N
CiAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlw c2Uu
b3JnL09DTC9leGFtcGxlcy9vY2wiPg0KICAgICAgICA8ZGV0YWlscyBrZXk9 ImJv
ZHkiIHZhbHVlPSJzZWxmLT5jbG9zdXJlKGRpcmVjdFJlcG9ydHMpIi8+DQog ICAg
ICA8L2VBbm5vdGF0aW9ucz4NCiAgICA8L2VPcGVyYXRpb25zPg0KICAgIDxl T3Bl
cmF0aW9ucyBuYW1lPSJyZXBvcnRpbmdDaGFpbiIgdXBwZXJCb3VuZD0iLTEi IGVU
eXBlPSIjLy9FbXBsb3llZSI+DQogICAgICA8ZUFubm90YXRpb25zIHNvdXJj ZT0i
aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9PQ0wvZXhhbXBsZXMvb2NsIj4NCiAg ICAg
ICAgPGRldGFpbHMga2V5PSJib2R5IiB2YWx1ZT0iaWYgbWFuYWdlci5vY2xJ c1Vu
ZGVmaW5lZCgpIHRoZW4gT3JkZXJlZFNldHt9IGVsc2UgbWFuYWdlci5yZXBv cnRp
bmdDaGFpbigpLT5wcmVwZW5kKG1hbmFnZXIpIGVuZGlmIi8+DQogICAgICA8 L2VB
bm5vdGF0aW9ucz4NCiAgICA8L2VPcGVyYXRpb25zPg0KICAgIDxlT3BlcmF0 aW9u
cyBuYW1lPSJyZXBvcnRzVG8iIG9yZGVyZWQ9ImZhbHNlIiBlVHlwZT0iZWNv cmU6
RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNv cmUj
Ly9FQm9vbGVhbiI+DQogICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0 cDov
L3d3dy5lY2xpcHNlLm9yZy9PQ0wvZXhhbXBsZXMvb2NsIj4NCiAgICAgICAg PGRl
dGFpbHMga2V5PSJib2R5IiB2YWx1ZT0ic2VsZi5yZXBvcnRpbmdDaGFpbigp LT5p
bmNsdWRlcyhtZ3IpIi8+DQogICAgICA8L2VBbm5vdGF0aW9ucz4NCiAgICAg IDxl
UGFyYW1ldGVycyBuYW1lPSJtZ3IiIGVUeXBlPSIjLy9FbXBsb3llZSIvPg0K ICAg
IDwvZU9wZXJhdGlvbnM+DQogICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNp OnR5
cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIG5hbWU9ImlzTWFuYWdlciIgZVR5cGU9 ImVj
b3JlOkVEYXRhVHlwZSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAy L0Vj
b3JlIy8vRUJvb2xlYW4iDQogICAgICAgIGNoYW5nZWFibGU9ImZhbHNlIiB2 b2xh
dGlsZT0idHJ1ZSIgdHJhbnNpZW50PSJ0cnVlIiBkZXJpdmVkPSJ0cnVlIj4N CiAg
ICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uu b3Jn
L09DTC9leGFtcGxlcy9vY2wiPg0KICAgICAgICA8ZGV0YWlscyBrZXk9ImRl cml2
ZSIgdmFsdWU9ImRpcmVjdFJlcG9ydHMtPm5vdEVtcHR5KCkiLz4NCiAgICAg IDwv
ZUFubm90YXRpb25zPg0KICAgIDwvZVN0cnVjdHVyYWxGZWF0dXJlcz4NCiAg ICA8
ZVN0cnVjdHVyYWxGZWF0dXJlcyB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5j ZSIg
bmFtZT0iZGVwYXJ0bWVudCIgZVR5cGU9IiMvL0RlcGFydG1lbnQiDQogICAg ICAg
IGNoYW5nZWFibGU9ImZhbHNlIiB2b2xhdGlsZT0idHJ1ZSIgdHJhbnNpZW50 PSJ0
cnVlIiBkZXJpdmVkPSJ0cnVlIiBlT3Bwb3NpdGU9IiMvL0RlcGFydG1lbnQv ZW1w
bG95ZWVzIj4NCiAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8v d3d3
LmVjbGlwc2Uub3JnL09DTC9leGFtcGxlcy9vY2wiPg0KICAgICAgICA8ZGV0 YWls
cyBrZXk9ImRlcml2ZSIgdmFsdWU9ImNvbXBhbnkuZGVwYXJ0bWVudHMtPmFu eShl
bXBsb3llZXMtPmluY2x1ZGVzKHNlbGYpKSIvPg0KICAgICAgPC9lQW5ub3Rh dGlv
bnM+DQogICAgPC9lU3RydWN0dXJhbEZlYXR1cmVzPg0KICAgIDxlU3RydWN0 dXJh
bEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJt YW5h
Z2VyIiBlVHlwZT0iIy8vRW1wbG95ZWUiDQogICAgICAgIGVPcHBvc2l0ZT0i Iy8v
RW1wbG95ZWUvZGlyZWN0UmVwb3J0cyIvPg0KICAgIDxlU3RydWN0dXJhbEZl YXR1
cmVzIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBuYW1lPSJkaXJlY3RS ZXBv
cnRzIiBvcmRlcmVkPSJmYWxzZSINCiAgICAgICAgdXBwZXJCb3VuZD0iLTEi IGVU
eXBlPSIjLy9FbXBsb3llZSIgZU9wcG9zaXRlPSIjLy9FbXBsb3llZS9tYW5h Z2Vy
Ii8+DQogICAgPGVTdHJ1Y3R1cmFsRmVhdHVyZXMgeHNpOnR5cGU9ImVjb3Jl OkVB
dHRyaWJ1dGUiIG5hbWU9ImVtcElEIiBsb3dlckJvdW5kPSIxIiBlVHlwZT0i ZWNv
cmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIv RWNv
cmUjLy9FSW50Ig0KICAgICAgICBpRD0idHJ1ZSIvPg0KICAgIDxlU3RydWN0 dXJh
bEZlYXR1cmVzIHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBuYW1lPSJu YW1l
IiBlVHlwZT0iZWNvcmU6RURhdGFUeXBlIGh0dHA6Ly93d3cuZWNsaXBzZS5v cmcv
ZW1mLzIwMDIvRWNvcmUjLy9FU3RyaW5nIi8+DQogICAgPGVTdHJ1Y3R1cmFs RmVh
dHVyZXMgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIG5hbWU9ImNvbXBh bnki
IGVUeXBlPSIjLy9Db21wYW55Ig0KICAgICAgICBlT3Bwb3NpdGU9IiMvL0Nv bXBh
bnkvZW1wbG95ZWVzIi8+DQogIDwvZUNsYXNzaWZpZXJzPg0KPC9lY29yZTpF UGFj
a2FnZT4NCg==
------------Dxp1ychupkmzzh1l7h5Jua--
|
|
|
Re: Constraints in Ecore for GMF [message #8481 is a reply to message #8183] |
Tue, 08 August 2006 00:37 |
Radomil Dvorak Messages: 249 Registered: July 2009 |
Senior Member |
|
|
Hi Madanagopal,
1. I am not aware of any EMF in-built support for GMF. I also have not found
anything about OCL constraint annotations at the link you have mentioned.
If you take a closer look at the constraint implementation there, it
registers EMFT constraint implemented in Java which delegates the constraint
evaluation to oAW's check system.
It is just an example of integrating EMFT constraint definition into GMF
generated editor.
2. Actually, I think you intended to specify
http://www.eclipse.org/articles/Article-EMF-Codegen-with-OCL /article.html
link instead.
I am not sure I understand what you mean by 'referenced to the gmfgen for
model validation'.
There is no reason for anything like this as in case that EMF code generator
creates and registers an EValidator for a model package it is
automatically involved in GMF diagram validation (using
emf.ecore.util.Diagnostician) if gmfgen enables it.
3. To my understanding, the article illustrates an example of how to inject
OCL constraint check into EMF validation mechanism.
Why not just take it and reuse it in your application? Your generated
EValidator with this approach will arrive to GMF as well.
I am not convinced that GMF itself should hook custom templates into EMF
model code generation.
If your understanding of constraints defined at ecore level is only an OCL
annotation contained in metamodel ecore file,
I would advice you to post a proposal to 'eclipse.technology.emft'
newsgroup. I strongly believe it is EMFT job
and if EMFT Validation framework supports this, it will definitely be used
in GMF.
As for the GMF example, see
http://wiki.eclipse.org/index.php/GMF_Tutorial_Part_2#Valida tion.
It just defines an audit targeted to domain metamodel.
Regards,
/Radek
"Madanagopal" <madanagopal@gmail.com> wrote in message
news:op.tdwmueic6tuwl9@centrino.sts.tu-harburg.de...
Hello,
Thank you Radek for your long mail. Before you can point me further; allow
me to tell you wat i probable wish to do with Ecore Constraints.
Generally, GMF Audits and Link Mapping are the way to enforce OCL
Constraints. I am interested to have OCL Constraints in Ecore level itself
so that my model can be validated at this level and further i can
implement the Constraints with Link Mapping.
What made me think this is possible:?
1. Since EMF has the inbuilt support for GMF and EMF Ecore editor can
take OCL constraint as annotations with reference to
http://www.eclipse.org/articles/Article-FromFrontendToCode-M DSDInPractice/article.html.
2. And with the generated <package>Validator.java that contains the OCL
Annotations, Can this be referenced to the gmfgen for model validation.
3. The above referenced link has got templates which help in generating
the validation code for our model.
An example with the Constraints at Ecore level for GMF would be really
helpful. Please post in your suggestions.
Please find my ecore file attached with this mail.
Regards,
Madanagopal
On Wed, 02 Aug 2006 15:03:14 +0200, Radek Dvorak
<radek.dvorak@borland.com> wrote:
> Hi Madanagopal,
>
> All your Ecore level constraints will get involved by GMF
> Diagram\Validate
> action if you enable it
> in gmfgen.
>
> With GMF audit rules you can define constraints involving additonal
> aspects
> for your domain model
> from the diagraming perspective. For instance, best practices and
> modeling
> styles you would like to promote and
> which may be violated while your domain model is still valid.
> Moreover, you can define constraints for the diagram notation model to
> guard
> also some visual aspects.
> As disscused earlier in gmf newsgroup, all audits map to EMFT Validation
> constraint definitions.
>
> If you wish, keep all your constraints as basic EMF constraints and GMF
> editor can contribute with additional UI services.
> Alternatively, use EMFT Validation framework to get cool OCL support and
> UI
> for constraint registry management.
> Both mentioned above will be active in GMF generated diagram editors if
> enabled in gmfgen.
>
> What you are trying to do is definition of an OCL like constraint as a
> basic
> EMF constraint which is not going to work.
> Perhaps, you could try to initially model your constraints as GMF audits
> as
> you can segregate them in a separate validation
> plugin later on. Just by copying the editor's plugin.xml fragment
> defining
> EMFT constraintProvider extension points.
>
> This way you can focus on the constraint logic itself while getting all
> the
> EMFT extension point plumbing for free and having in-place rule
> validation within the context of the target domain elements (in
> *.gmfmap).
> This should ensure that EMFT Validation registrations will be OK
> and after getting some expertise you can stick to EMFT Validation
> framework
> only.
>
> I hope to have clarified this matter a bit to help you decide on the
> right
> approach to use.
> As for a tutorial, GMF existing tutorials already demonstrate audits
> functionality.
> Look at the GMF ecore diagram editor, try to enable validation in gmfgen
> and
> re-generate. You will see how Ecore level
> constraints are integrated.
>
> PS: eclipse.modeling.gmf newsgroup created. Use it instead of
> eclipse.technology.gmf
>
> Regards,
> /Radek
>
>
> "Madanagopal" <madanagopal@gmail.com> wrote in message
> news:op.tdnisxn66tuwl9@centrino.sts.tu-harburg.de...
> Hello,
>
> With reference to some previous posts
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=143580
> i am currently trying to have constraints implemented at the Ecore level.
>
> Moreover my requirement is to validate a class Firm with an attribute
> "name" with constraint "self.name.size() > 0".
>
> I have another possibility to implement this. Define an Audit Rule for
> this constraint and then Enable the Validation Options in .gmfgen by
> setting
>
> Diagram -> Validation Decorators to "true"
> Diagram -> Valdation Enabled to "true"
> Providers -> Validation Provider Priority to "Medium".
>
> This will generate diagram plugin which would have options Diagram->
> Validate to validate my Model.
>
> Now having constraints at Ecore level, what are the benifits that i get
> when i use them for GMF, since I have to deal with lots of Constraints in
> Design Level while writing Ecore and some in gmfmap.
>
> Should i still have to make any changes while generating GMF Diagram
> Editors with having Constraints in Ecore Level.
>
> Please Post in your Comments.
> An Example or a tutorial on this topic would be really helpful.
>
> Madanagopal.
>
> Attachments :
> 1. Ecore Snapshot
> 2. Ecore File
>
>
|
|
|
Goto Forum:
Current Time: Mon Dec 30 16:31:47 GMT 2024
Powered by FUDForum. Page generated in 0.02937 seconds
|