Home » Modeling » GMF (Graphical Modeling Framework) » Re: Constraints in Ecore for GMF 
| Re: Constraints in Ecore for GMF [message #2529] | 
Wed, 02 August 2006 09:03   | 
 
Eclipse User  | 
 | 
 | 
   | 
 
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 04:21    | 
 
Eclipse User  | 
 | 
 | 
   | 
 
------------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] | 
Mon, 07 August 2006 20:37   | 
 
Eclipse User  | 
 | 
 | 
   | 
 
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: Tue Nov 04 03:21:26 EST 2025 
 Powered by  FUDForum. Page generated in 0.04829 seconds  
 |