Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "OCL/New and Noteworthy/Helios"

Line 11: Line 11:
 
This milestone is pending.
 
This milestone is pending.
  
====invalid/Invalid/OclInvalid resolved [https://bugs.eclipse.org/bugs/show_bug.cgi?id=282882 282882] [https://bugs.eclipse.org/bugs/show_bug.cgi?id=288526 288526]====
+
====invalid/Invalid/OclInvalid resolved====
 +
 
 +
Bugzillas: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=282882 282882] [https://bugs.eclipse.org/bugs/show_bug.cgi?id=288526 288526]
  
 
The OMG OCL 2.0 specification is very unclear as to the relative status of invalid objects and types. The tentative OCL 2.1 specification is little better.
 
The OMG OCL 2.0 specification is very unclear as to the relative status of invalid objects and types. The tentative OCL 2.1 specification is little better.
Line 23: Line 25:
 
Beware. This change has a significant API incompatibility; the OCLStandardLibrary methods getOclInvalid and getInvalid have interchanged semantics. All calls to getOclInvalid and getInvalid should be reviewed, since errors may be silent. Concrete syntax changes are less likely to cause trouble.
 
Beware. This change has a significant API incompatibility; the OCLStandardLibrary methods getOclInvalid and getInvalid have interchanged semantics. All calls to getOclInvalid and getInvalid should be reviewed, since errors may be silent. Concrete syntax changes are less likely to cause trouble.
  
====Comments parsed [https://bugs.eclipse.org/bugs/show_bug.cgi?id=286724 286724]====
+
====Comments parsed====
 +
 
 +
Bugzilla: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=286724 286724]
  
 
Comments are now parsed as LPG Token Adjuncts enabling tools that want access to comments to find them.
 
Comments are now parsed as LPG Token Adjuncts enabling tools that want access to comments to find them.
  
====static features supported for the UML binding [https://bugs.eclipse.org/bugs/show_bug.cgi?id=285633 285633]====
+
====static features supported for the UML binding====
 +
 
 +
Bugzilla: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=285633 285633]
  
 
The proposed OCL enhancement to allow a 'static' keyword prefix to a 'def' constraint is implemented for the UML binding, unless ParsingOptions.SUPPORT_STATIC_FEATURES is set false in the Environment, in which case an error is generated.
 
The proposed OCL enhancement to allow a 'static' keyword prefix to a 'def' constraint is implemented for the UML binding, unless ParsingOptions.SUPPORT_STATIC_FEATURES is set false in the Environment, in which case an error is generated.
Line 35: Line 41:
 
setStatic, isConstraint and isPackage are added to the UMLReflection API.
 
setStatic, isConstraint and isPackage are added to the UMLReflection API.
  
====CST inelegancies removed [https://bugs.eclipse.org/bugs/show_bug.cgi?id=287993 287993]====
+
====CST inelegancies removed====
 +
 
 +
Bugzilla: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=287993 287993]
  
 
@pre is now represented by a non-null rather than null IsMarkedPreCS object. Previously this was coded by a true/false value of the IsMarkedPreCS.isPre field. Analyzer code explicitly handling IsMarkedPreCS objects must be revised to handle the null object logic.
 
@pre is now represented by a non-null rather than null IsMarkedPreCS object. Previously this was coded by a true/false value of the IsMarkedPreCS.isPre field. Analyzer code explicitly handling IsMarkedPreCS objects must be revised to handle the null object logic.

Revision as of 10:16, 4 September 2009

Eclipse OCL New and Noteworthy items for the Helios release.

The Helios MDT-OCL release will be 3.0.0 rather than 2.0.0, since the Galileo plug-ins contained a mix of 1.3.0 and 2.0.0 versions. The 2.0.0 versions were mandated by a major version change in UML2.

OCL 2.0 API Changes

As a major release's change, MDT-OCL 3.0.0 is expected to break API. You can check all API changes under discussion here

Milestone 2

This milestone is pending.

invalid/Invalid/OclInvalid resolved

Bugzillas: 282882 288526

The OMG OCL 2.0 specification is very unclear as to the relative status of invalid objects and types. The tentative OCL 2.1 specification is little better.

The problem is easily understood by contrasting invalid with the uncontentious null: null is the null object that is the sole instance of the OclVoid which is the sole instance of VoidType meta-class.

Section 8.2 tends to suggest that: OclInvalid is the invalid object that is the sole instance of Invalid which is the sole instance of the InvalidType meta-class. This is what MDT-OCL 1.3.0 realises.

Section 11.2.4 and 11.2.5 are much more consistent in preferring: invalid is the invalid object that is the sole instance of OclInvalid which is the sole instance of the InvalidType meta-class. This is the revised implementation for MDT-OCL 3.0.0.

Beware. This change has a significant API incompatibility; the OCLStandardLibrary methods getOclInvalid and getInvalid have interchanged semantics. All calls to getOclInvalid and getInvalid should be reviewed, since errors may be silent. Concrete syntax changes are less likely to cause trouble.

Comments parsed

Bugzilla: 286724

Comments are now parsed as LPG Token Adjuncts enabling tools that want access to comments to find them.

static features supported for the UML binding

Bugzilla: 285633

The proposed OCL enhancement to allow a 'static' keyword prefix to a 'def' constraint is implemented for the UML binding, unless ParsingOptions.SUPPORT_STATIC_FEATURES is set false in the Environment, in which case an error is generated.

Ecore does not support static EStructuralFeatures and so use of 'static' gives an error when the ECore binding is used.

setStatic, isConstraint and isPackage are added to the UMLReflection API.

CST inelegancies removed

Bugzilla: 287993

@pre is now represented by a non-null rather than null IsMarkedPreCS object. Previously this was coded by a true/false value of the IsMarkedPreCS.isPre field. Analyzer code explicitly handling IsMarkedPreCS objects must be revised to handle the null object logic.

InvCS, DefCS, InitCS and DerCS are now maintained in a PropertyContextCS.constraints or ClassifierContextDecl.constraints array. The reverse lexical order linked list daisy chain is no longer supported.

PathNameCS.simpleNames and StateExpCS.simpleNames replace PathNameCS.sequenceOfNames and StateExpCS.sequenceOfNames. This changes a List<String> to a List<SimpleNameCS> which avoids loss of IToken context.

Back to the top