Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Papyrus/Mars Work Description/Improvments/Multiplicity Editor
Contents
Multiplicity Editor
Description
The multiplicity editor contains two modes of edition:
- The simple mode which allow to edit the lower and the upper values from an unique editor
- The advanced mode which allow to edit the lower and the upper values from two editors of ValueSpecification.
Usage
Simple mode
The simple mode is represented as the following:
This editor must be filled by the following pattern:
Value filled | Lower value | Upper value |
---|---|---|
1 | null (default value is 1)
|
null (default value is 1)
|
x..y | LiteralInteger with value x
|
LiteralUnlimitedNatural with value y
|
x..* | LiteralInteger with value x
|
LiteralUnlimitedNatural with value -1 (interpreted as * )
|
x | LiteralInteger with value x
|
LiteralUnlimitedNatural with value x
|
The values set as lower and upper are always positive (except the *
for the upper which is valued as -1).
This editor is usable only when the lower ValueSpecification is a LiteralInteger
or null
and when the upper ValueSpecification is a LiteralUnlimitedNatural
or null
.
On the other hand, this editor will be displayed like the following:
Advanced mode
Simple ValueSpecification editor
The advanced mode with simple ValueSpecificatiton editors is represented as the following:
The lower and the upper ValueSpecification can be created/edited/deleted by the buttons:
XText ValueSpecification editor
The advanced mode with XText ValueSpecification editors is represented as the following:
This editor use the XText ValueSpecification editors (explain here) with some specificities depending on lower or upper value edition.
The specificity of the lower ValueSpecification edition is when the value filled is an integer, this one will be handle as LiteralInteger
instead of LiteralUnlimitedNatural
or LiteralInteger
(the *
value will create an OpaqueExpression
).
The specificity of the upper ValueSpecification edition is when the value filled is an integer or *
:
- if the integer is positive or -1, a
LiteralUnlimitedNatural
will be created - if the integer is negative, an
OpaqueExpression
will be created instead ofLiteralInteger
Switch modes
This is possible to switch between the two modes by two ways:
- The button in the multiplicity editor:
- The multiplicity editor preferences in the property views preferences:
Regarless of the way used to switch modes, the mode used is saved in the preferences and will be used for each multiplicity in Papyrus.