[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]