On Tuesday 08 March 2005 09:51 am, Chad Brandon wrote:
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of David R.
> Allen
> Sent: Tuesday, March 08, 2005 7:42 AM
> To: [email protected]
> Subject: [Andromda-user] OCL/HQL questions
>
> My environment uses MagicDraw 9.0 which only checks syntax on OCL 2.0
> expressions.  With that in mind, I have a couple questions:
>
> 1.  Was "body" something from an earlier OCL version?  It is not something
> in
> OCL 2.0.  I was able to construct a valid expression following the specs on
> OCL 2.0 for defining operations (mostly with the post: subexpression).
>
> [CB] Actually Magic Draw does not check OCL 2.0 (its still on an earlier
> version), OCL 2.0 has the body expression as well as a few others that have
> been introduced: therefore MD will complain on valid OCL 2.0 expressions.

[DRA]  The OCL 2.0 spec does not have "body" as a keyword.  Just things like 
def,pre,post,let,...  The section on defining operations never refers to 
"body".  What spec are you using?  I am looking at one from August, 2003 from 
OMG.

Also, MagicDraw does not recognize "body" either in its syntax checking.  
However, by using the following from the OCL 2.0 specs, everything is OK in 
MD:

context <class>.<method-sig>
post: result = allInstances() -> select (...)

So should I be using this undocumented "body" construct and just ignore the MD 
errors on parsing?  Note that the above 2.0 expression is actually generating 
the H-QL, but oddly without the second conditional inside the select 
function.

>
> 2.  I used an <<Enumeration>> as the type of a member for a Hibernate
> <<Entity>>, and I need to express in a query method that that member is not
> equal to a specific enumerated value.  Is that possible since stereotypes
> are
> used rather than the datatype enumeration?
>
> [CB] How are you specifying it?

[DRA]  I had just used "= EnumType.value" when I was doing equality.  This 
resulted in "= EnumType.value" in the HQL literally, but Hibernate does not 
really know anything about the enumerations generated from AndroMDA (maybe 
due to the way I set it up).

When I changed the expression to "<> 'value' ", I always get an exception 
which I can reproduce and send if you like.  It really didn't say much other 
than it couldn't handle the OCL expression.

>
> 3.  Most of the given OCL expression is now translated to HQL, but it left
> off
> the part about that member not being equal to a particular value (I used
> the
>
> string value as it would appear in the DB).  When I used to have "body"
> (removed it to get MD9 to help w/syntax), I was getting exceptions for
> having
> "<>" or "!=" in the expression.  Is "<>" parsed as 'not equals'?
>
> Thanks,

-- 
David Allen
[EMAIL PROTECTED]


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Andromda-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/andromda-user

Reply via email to