Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » GMF (Graphical Modeling Framework) » java as language for constraints validation
java as language for constraints validation [message #57213] Thu, 28 September 2006 16:12 Go to next message
Eclipse UserFriend
Originally posted by: john.watson.yahoo.com

Hi,

where can I get more info how I can use java as language for constraints
validation in Audit Rule in gmfmap file? (How can I get all object for any
EClass, how to get the desired attribute, how to validate; any limitations
if exists, etc)

Thanks in advance!
Re: java as language for constraints validation [message #57506 is a reply to message #57213] Fri, 29 September 2006 12:14 Go to previous message
Radomil Dvorak is currently offline Radomil DvorakFriend
Messages: 249
Registered: July 2009
Senior Member
Hi John,

It's on my TODO list to provide such info
(https://bugs.eclipse.org/bugs/show_bug.cgi?id=159255).
For now, see comments bellow:

Java should be usually the option, when the expression logic represents
excessive complexity or requires direct access to complete ecore reflective
API,
which is impossible with the rest of supported languages (like OCL).
While the other language alternatives can be validated at modeling time and
interpreted at runtime, a concrete java implementation
is to be provided by the user as a post code-generation step. In other
words, a java expression body attribute is not to contain the actual java
source code.
Instead, the body holds a java identifier, which becomes the basis for
deriving a name for the corresponding java element in the generated code.

The common convention of EMF code-generation has been adopted and an
operation skeleton for every java expression is generated.
This skeleton has appropriate context (eventually environment variables, for
instance in case of LinkCreationConstraints) as arguments and its default
implementation only throws an exception reporting 'Missing user
implementation!'.
As soon as the user provides a custom implementation, the operation should
be marked as @generated NOT in order to preserve it across generation
sessions.
Which class will be the owner of the skeleton operation is dependent on the
type of the expression based construct in GMF models.

As an example:

AuditRule {
Constraint {
lang : 'java'
body : 'checkEClass_NonEmptyName'
}
DomainElementTarget{
element: ecore::EClass
}
}

results in generation of the following code in the GMF diagram
....ValidationProvider class.

/**
* @generated
*/
static class JavaAudits {
/**
* @generated
*/
private static Boolean checkEClass_NonEmptyName(EClass self) {
// TODO: implement this method
// Ensure that you remove @generated or mark it @generated NOT

throw new EcoreAbstractExpression.NoImplException(
"No user java implementation provided in 'checkEClass_NonEmptyName'
operation"); //$NON-NLS-1$
}
} //JavaAudits


It's worth mentioning, that there are also other options.
You can implement your own org.eclipse.emf.ecore.EValidator (see
http://dev.eclipse.org/viewcvs/indextools.cgi/*checkout*/org .eclipse.emf/doc/org.eclipse.emf.doc/references/overview/EMF .Validation.html).
If registered, it gets involved in GMF diagram validation automatically.
As GMF diagram validation uses EMFT Validation framework, you can also
create EMFT constraintProvider extension (see
http://help.eclipse.org/help31/index.jsp?topic=/org.eclipse. gmf.doc/tutorials/msl/validationTutorial.html).
It will be included in GMF diagram validation as well.

Regards,
/Radek



"John Watson" <john.watson@yahoo.com> wrote in message
news:ac37f348421836751a4e7a1959cee894$1@www.eclipse.org...
> Hi,
>
> where can I get more info how I can use java as language for constraints
> validation in Audit Rule in gmfmap file? (How can I get all object for any
> EClass, how to get the desired attribute, how to validate; any limitations
> if exists, etc)
>
> Thanks in advance!
>
Previous Topic:Can I create slightly different diagramnodes from a single model-node?
Next Topic:How to set the lenght and width of different elemets in gmf
Goto Forum:
  


Current Time: Sat Oct 19 18:25:21 GMT 2024

Powered by FUDForum. Page generated in 0.03264 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top