OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-assembly message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: NEW ISSUE: Promoting a reference with multiplicity 1..n and targetsshould default to 0..n


TARGET: Assembly Model Specification

DESCRIPTION: Promoting a reference with multiplicity 1..n and targets should default to 0..n

The description of the @nonOverridable attribute for component
references has a special rule for promotion of a component reference
with @nonOverridable==false, multiplicity 1..1, and a target.  In this
case, the default multiplicity of the promoting composite reference
is 0..1.  This is based on the assumption that an additional wire will
not normally be required at the composite level because a wire is
already in place at the component level.

The same rationale for a special rule applies to component references
with multiplicity 1..n and one or more targets.  For consistency, the
multiplicity of the promoting composite reference should be 0..n by
default, irrespective of the setting of @nonOverridable.  This is based
on the assumption that additional wires will not normally be required
at the composite level because one or more wires are already in place
at the component level.

PROPOSAL:

Note 1: This proposal assumes that the proposed resolution for
ASSEMBLY-134 contained in the JIRA is accepted.

Note 2: This proposal moves some text from the description of
the @nonOverridable attribute for component references to the
description of the @multiplicity attribute for composite references.

Replace the description of the @nonOverridable attribute for
component references by the following:

  nonOverridable : boolean (0..1) - a boolean value, "false" by default,
  which indicates whether this component reference can have its targets
  overridden by a composite reference which promotes the component reference.
  If @nonOverridable==false, the target(s) of the promoting composite
  reference replace all the targets explicitly declared on the component
  reference for any value of @multiplicity on the component reference.
  If @nonOverridable==true, and the component reference has @multiplicity
  0..1 or 1..1 and the reference has a target, promotion implies that the
  promoting composite reference has @wiredbyImpl==true and the composite
  reference cannot supply a target, but can influence the policy attached
  to the component reference.
  If @nonOverridable==true, and the component reference @multiplicity is
  0..n or 1..n, promotion targeting is additive.

Replace the description of the @multiplicity attribute for
composite references by the following:

  multiplicity : (0..1) - Defines the number of wires that can connect the
  reference to target services.  When present, the multiplicity can have one
  of the following values:
   . 0..1 – zero or one wire can have the reference as a source
   . 1..1 – one wire can have the reference as a source
   . 0..n - zero or more wires can have the reference as a source
   . 1..n – one or more wires can have the reference as a source

  The default value for the @multiplicity attribute depends on the
  promotion multiplicity constraint of the promoted component reference
  or references.  The promotion multiplicity constraint is the same as
  the multiplicity of the promoted component reference, except in the
  following cases:
   . if the promoted component reference has @nonOverridable==false
     and @multiplicity 0..1 or 1..1 and the reference has a target, the
     promotion multiplicity constraint of the component reference is 0..1.
   . if the promoted component reference has @multiplicity 1..n and
     the reference has one or more targets, the promotion multiplicity
     constraint of the component reference is 0..n.

  If the composite reference promotes a single component reference, the
  default multiplicity of the composite reference is the promotion
  multiplicity constraint of the promoted component reference.

  If the composite reference promotes multiple component references
  with the same promotion multiplicity constraint, the default multiplicity
  of the composite reference is the promotion multiplicity constraint of
  the promoted component references.

  If the composite reference promotes multiple component references
  with different promotion multiplicity constraints, there is no default
  value for the @multiplicity attribute of the composite reference and a
  value for @multiplicity MUST be specified. [ASMxxxxx]

  The value specified for the @multiplicity attribute of a composite
  reference MUST be compatible with the promotion multiplicity constraint
  of each of the promoted component references, i.e., the multiplicity
  has to be equal or further restrict.  In more detail:
   . Multiplicity 0..1 can be used where each of the promoted component
     references has a promotion multiplicity constraint of 0..1 or 0..n
   . Multiplicity 1..1 can be used where each of the promoted component
     references has a promotion multiplicity constraint of 0..1, 0..n,
     1..1, or 1..n
   . Multiplicity 1..n can be used where each of the promoted component
     references has a promotion multiplicity constraint of 1..n or 0..n
   . Multiplicity 0..n can be used where each of the promoted component
     references has a promotion multiplicity constraint of 0..n.
  [ASM60011]


   Simon



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]