We're updating the issue view to help you get more done.Learn more

Convert Interval<Integer> to MULTIPLICITY_INTERVAL to simplify specification and implementation.

Currently, there are three places in the AOM where Interval<Integer> is used:
- C_ATTRIBUTE.existence
- C_MULTIPLE_ATTRIBUTE.cardinality.interval
- C_OBJECT.occurrences

It is proposed to replace this with a class MULTIPLICITY_INTERVAL, which is formally defined as inheriting from Interval<Integer>. It has the same data members, but provides a place to define useful functions such as :
- is_open: Boolean
- is_optional: Boolean
- as_string: String -- output in typical UML format, e.g. "0..1"

as well as various constructors that make sense for multiplicity intervals. It also ensures the lower_limit cannot be less than 0.

The other advantage is for formalisms like XML, the class MULTIPLICITY_INTERVAL can replace the pseudo type IntervalOfInteger in the BaseTypes.xsd (http://www.openehr.org/releases/1.0.2/its/XML-schema/documentation/BaseTypes.xsd.html#h1337655869).

Status

Assignee

Thomas Beale

Reporter

Thomas Beale

Raised By

Thomas Beale

Impact Analysis

Relatively simple change in AOM implementations; should not affect parsers etc badly.

Analyst

Thomas Beale

Change Description

The type Interval<Integer> representing occurrences, existence and cardinality is replaced with a new type MULTIPLICITY_INTERVAL.

Time estimate

2h

Components

Fix versions

Affects versions

ADL 1.4

Due date

2015/11/30

Priority

Minor