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 "MDT/UML2/New and Noteworthy/Luna"

< MDT‎ | UML2
(New and Noteworthy for Luna m3)
 
(UML2 Luna milestone 4)
Line 32: Line 32:
  
 
This milestone was completed on December 20, 2014.
 
This milestone was completed on December 20, 2014.
 +
 +
====Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=180744 180744]====
 +
 +
The '''UML Editor''' menu sports a new '''Element &rarr; Expand Templates...''' action that reifies template bindings, replacing (''in situ'') the binding relationships in the bound element with elements merged from the templates.  Constructs supported include
 +
 +
* template bindings for packages, classifiers, and operations
 +
* bindings to multiple templates
 +
* multiple bindings to the same template
 +
* substitution of operands in name expressions (useful for disambiguating parameter substitutions from multiple bindings)
 +
 +
So, for example,  a "deployment system" package that binds the same "system" package template twice, once for hardware components and once for software components.  <tt>SoftwareSpec</tt> and <tt>HardwareSpec</tt> substitute for the <tt>ResourceKind</tt> in the template and the name of the <tt>Allocation</tt> class in the template is an expression in which the first segment is substituted by default with the string "Resource".
 +
 +
[[Image:uml2nn_180744before.png]]
 +
 +
The template expansion algorithm is based on package merge.  Most of the options are defaulted to values appropriate for template expansion, but the options for handling redundant generalizations and capabilities trace annotations are left to the user to decide.
 +
 +
[[Image:uml2nn_180744expand.png]]
 +
 +
The result of the expansion shows the substitution of parts of the name expressions for the <tt>SoftwareAllocation</tt> and <tt>HardwareAllocation</tt> which otherwise, using the default substitution, would both be named <tt>ResourceAllocation</tt>.  Also, a trace annotation references all of the elements in the expanded package that were merged from the <tt>system</tt> template (just as in package merges).
 +
 +
[[Image:uml2nn_180744after.png]]
 +
 +
====Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=403374 403374]====
 +
 +
UML-to-Ecore conversion (and, consequently, code generation) now supports transformation of OCL invariant constraints in EMF's non-API style for classes.  These generate code only in the <tt>XyzValidator</tt> class, not as validation operations in the model API.  This enhancement provides parity with constraint transformations for data types, which in EMF only support the non-API style of validation.
 +
 +
This model:
 +
 +
[[Image:uml2nn_403374model.png]]
 +
 +
Generates this code:
 +
 +
[[Image:uml2nn_403374code.png]]
 +
 +
====Bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=412912 412912]====
 +
 +
The EMF.Edit item providers for the '''default''' attribute of the UML '''Property''' and '''Parameter''' metaclasses are improved to create values of more appropriate type than '''LiteralString''' where possible:
 +
 +
* for property or parameter of an '''Enumeration''' type, an '''InstanceValue''' referencing the '''EnumerationLiteral''' selected by the user from a pick-list
 +
* for property or parameter of '''Boolean''' type, a '''LiteralBoolean''' with the value selected by the user from a <tt>true</tt>/<tt>false</tt> pick-list
 +
* for property or parameter of '''Integer''' type, a '''LiteralInteger''' with the value entered by the user as text
 +
* for property or parameter of '''UnlimitedNatural''' type, a '''LiteralUnlimitedNatural''' with the value entered by the user as text
 +
* for property or parameter of '''Real''' type, a '''LiteralReal''' with the value entered by the user as text
 +
* in other cases, a '''LiteralString''' is created
 +
 +
[[Image:uml2nn_412912.png]]
  
 
== Milestone 5 ==
 
== Milestone 5 ==
  
 
This milestone was completed on January 31, 2014.
 
This milestone was completed on January 31, 2014.

Revision as of 12:21, 27 January 2014

MDT UML2 New and Noteworthy items for the Kepler release.

For a complete list of the enhancements provided in the Luna release, see the Luna Project Plan.

Milestone 3

This milestone was completed on November 15, 2013.

Bug 251963

The UML2 package merge algorithm now injects documentation into the generated API to indicate the source package of classes, properties, and operations that originate in merge increments when the Capabilities merge option is enabled. For API elements defined in the receiving package of the merge, no such annotation is included in the documentation.

Uml2luna nn251963.png

Bug 268444

The Apply Stereotype action's dialog is enhanced to let the user specify an alternative resource in which to store the resultant stereotype application(s).

Uml2luna nn268444.png

Bug 397508

A new class org.eclipse.uml2.uml.validation.UMLTraversalStrategy implements an EMF Validation Framework "traversal strategy" that applications may register to let validation operations discover the instances of stereotypes that are attached to UML model elements, to validate them.

Bug 409396

A new UML-to-Ecore conversion option, available in the EMF model importer and the profile definition action, lets the user determine how to handle properties that are untyped. In a UML model, a property that has no type can take any value; it is simply unconstrained. However, EMF cannot generate code for such a property, so now UML2 lets the user either substitute EObject type (the "Process" option), issue a warning ("Report"), or omit the property altogether ("Discard").

Uml2luna nn409396.png

Milestone 4

This milestone was completed on December 20, 2014.

Bug 180744

The UML Editor menu sports a new Element → Expand Templates... action that reifies template bindings, replacing (in situ) the binding relationships in the bound element with elements merged from the templates. Constructs supported include

  • template bindings for packages, classifiers, and operations
  • bindings to multiple templates
  • multiple bindings to the same template
  • substitution of operands in name expressions (useful for disambiguating parameter substitutions from multiple bindings)

So, for example, a "deployment system" package that binds the same "system" package template twice, once for hardware components and once for software components. SoftwareSpec and HardwareSpec substitute for the ResourceKind in the template and the name of the Allocation class in the template is an expression in which the first segment is substituted by default with the string "Resource".

Uml2nn 180744before.png

The template expansion algorithm is based on package merge. Most of the options are defaulted to values appropriate for template expansion, but the options for handling redundant generalizations and capabilities trace annotations are left to the user to decide.

Uml2nn 180744expand.png

The result of the expansion shows the substitution of parts of the name expressions for the SoftwareAllocation and HardwareAllocation which otherwise, using the default substitution, would both be named ResourceAllocation. Also, a trace annotation references all of the elements in the expanded package that were merged from the system template (just as in package merges).

Uml2nn 180744after.png

Bug 403374

UML-to-Ecore conversion (and, consequently, code generation) now supports transformation of OCL invariant constraints in EMF's non-API style for classes. These generate code only in the XyzValidator class, not as validation operations in the model API. This enhancement provides parity with constraint transformations for data types, which in EMF only support the non-API style of validation.

This model:

Uml2nn 403374model.png

Generates this code:

Uml2nn 403374code.png

Bug 412912

The EMF.Edit item providers for the default attribute of the UML Property and Parameter metaclasses are improved to create values of more appropriate type than LiteralString where possible:

  • for property or parameter of an Enumeration type, an InstanceValue referencing the EnumerationLiteral selected by the user from a pick-list
  • for property or parameter of Boolean type, a LiteralBoolean with the value selected by the user from a true/false pick-list
  • for property or parameter of Integer type, a LiteralInteger with the value entered by the user as text
  • for property or parameter of UnlimitedNatural type, a LiteralUnlimitedNatural with the value entered by the user as text
  • for property or parameter of Real type, a LiteralReal with the value entered by the user as text
  • in other cases, a LiteralString is created

Uml2nn 412912.png

Milestone 5

This milestone was completed on January 31, 2014.

Back to the top