[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: ISSUE 136: Promoting a reference with multiplicity 1..n and targets should default to 0..n
http://www.osoa.org/jira/browse/ASSEMBLY-136 On May 11, 2009, at 2:50 PM, Simon Nash wrote: > 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 > > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]