diff options
Diffstat (limited to 'extraplugins/eastadl/org.eclipse.papyrus.eastadl/src/org/eclipse/papyrus/eastadl/variability/ConfigurationDecision.java')
-rw-r--r-- | extraplugins/eastadl/org.eclipse.papyrus.eastadl/src/org/eclipse/papyrus/eastadl/variability/ConfigurationDecision.java | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/extraplugins/eastadl/org.eclipse.papyrus.eastadl/src/org/eclipse/papyrus/eastadl/variability/ConfigurationDecision.java b/extraplugins/eastadl/org.eclipse.papyrus.eastadl/src/org/eclipse/papyrus/eastadl/variability/ConfigurationDecision.java new file mode 100644 index 00000000000..0fbc2632c66 --- /dev/null +++ b/extraplugins/eastadl/org.eclipse.papyrus.eastadl/src/org/eclipse/papyrus/eastadl/variability/ConfigurationDecision.java @@ -0,0 +1,176 @@ +/***************************************************************************** + * Copyright (c) 2010 CEA LIST. + * + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Sara TUCCI (CEA LIST) sara.tucci@cea.fr - Initial API and implementation + * Chokri MRAIDHA (CEA LIST) chokri.mraidha@cea.fr - Initial API and implementation + * David SERVAT (CEA LIST) david.servat@cea.fr - Initial API and implementation + * + *****************************************************************************/ +package org.eclipse.papyrus.eastadl.variability; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.uml2.uml.NamedElement; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Configuration Decision</b></em>'. + * <!-- end-user-doc --> + * + * <!-- begin-model-doc --> + * ConfigurationDecision represents a single, atomized rule on how to configure the target feature model(s) of the containing ConfigurationDecisionModel, depending on a given configuration of the source feature model(s). Two examples are: "all North American (USA+Canada) cars except A-Class have cruise control" (one ConfigurationDecision) or "all Canadian cars have adaptive cruise control" (another ConfigurationDecision). All ConfigurationDecisions within a single ConfigurationDecisionModel then specify how the target feature model(s) are to be configured depending on the configuration of the source feature model(s). + * + * Example: Lets assume we have two FeatureModels: FM1 and FM2. FM1 has possible end-customer decisions like USA, Canada, EU, Japan and A-Class, C-Class, etc. FM2 has another possible end-customer decision such as CruiseControl, AdaptiveCruiseControl, RearWiper, RainSensor. End-customer decisions in FM2 describe possible technical features of the delivered products. By way of a set of ConfigurationDecisions it is now possible to define the configuration of FM2 (i.e. if there is a RainSensor, etc.) in dependency of a configuration of FM1. In other words, with a ConfigurationDecision we can express something like: "If USA is selected in FM1 AND A-Class is not selected in FM1, then CruiseControl will be selected in FM2". + * + * The two most important constituents of a ConfigurationDecision are its 'criterion' and 'effect'. The effect is a list of things to select and deselect in the target(!) configuration(s), whereas the criterion formulates a condition on the source(!) configuration(s) under which this ConfigurationDecision's effect will actually be applied to the target configuration(s). In the first example above, the criterion would be "USA & not A-Class" and the effect would be "CruiseControl[+]". + * + * + * Semantics: + * The ConfigurationDecision excludes or includes Features based on a given criterion. + * + * The elements of the criterion and effect attributes may be identified through the target and the source in the selectionCriterion. The criterion and effect attributes can contain a VSL expression with qualified names of the identified elements. + * + * Extension: + * Class + * <!-- end-model-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.papyrus.eastadl.variability.ConfigurationDecision#getEffect <em>Effect</em>}</li> + * <li>{@link org.eclipse.papyrus.eastadl.variability.ConfigurationDecision#getCriterion <em>Criterion</em>}</li> + * <li>{@link org.eclipse.papyrus.eastadl.variability.ConfigurationDecision#isIsEquivalence <em>Is Equivalence</em>}</li> + * <li>{@link org.eclipse.papyrus.eastadl.variability.ConfigurationDecision#getTarget <em>Target</em>}</li> + * <li>{@link org.eclipse.papyrus.eastadl.variability.ConfigurationDecision#getSelectionCriterion <em>Selection Criterion</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.papyrus.eastadl.variability.VariabilityPackage#getConfigurationDecision() + * @model + * @generated + */ +public interface ConfigurationDecision extends ConfigurationDecisionModelEntry { + /** + * Returns the value of the '<em><b>Criterion</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * <!-- begin-model-doc --> + * The inclusionCriterion gives the criterion to select the respective products (e.g. Northern American cars). + * <!-- end-model-doc --> + * @return the value of the '<em>Criterion</em>' attribute. + * @see #setCriterion(String) + * @see org.eclipse.papyrus.eastadl.variability.VariabilityPackage#getConfigurationDecision_Criterion() + * @model unique="false" dataType="org.eclipse.uml2.types.String" required="true" ordered="false" + * @generated + */ + String getCriterion(); + + /** + * Returns the value of the '<em><b>Effect</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * <!-- begin-model-doc --> + * The rationale gives the reason for the specified product decision, especially for the inclusion criterion and the selection of included and excluded features. + * <!-- end-model-doc --> + * @return the value of the '<em>Effect</em>' attribute. + * @see #setEffect(String) + * @see org.eclipse.papyrus.eastadl.variability.VariabilityPackage#getConfigurationDecision_Effect() + * @model unique="false" dataType="org.eclipse.uml2.types.String" required="true" ordered="false" + * @generated + */ + String getEffect(); + + /** + * Returns the value of the '<em><b>Selection Criterion</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Selection Criterion</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Selection Criterion</em>' reference. + * @see #setSelectionCriterion(SelectionCriterion) + * @see org.eclipse.papyrus.eastadl.variability.VariabilityPackage#getConfigurationDecision_SelectionCriterion() + * @model ordered="false" + * @generated + */ + SelectionCriterion getSelectionCriterion(); + + /** + * Returns the value of the '<em><b>Target</b></em>' reference list. + * The list contents are of type {@link org.eclipse.uml2.uml.NamedElement}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Target</em>' reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Target</em>' reference list. + * @see org.eclipse.papyrus.eastadl.variability.VariabilityPackage#getConfigurationDecision_Target() + * @model + * @generated + */ + EList<NamedElement> getTarget(); + + /** + * Returns the value of the '<em><b>Is Equivalence</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * <!-- begin-model-doc --> + * Means that the included and excluded features are selected if and only if the specified inclusion criterion holds. + * <!-- end-model-doc --> + * @return the value of the '<em>Is Equivalence</em>' attribute. + * @see #setIsEquivalence(boolean) + * @see org.eclipse.papyrus.eastadl.variability.VariabilityPackage#getConfigurationDecision_IsEquivalence() + * @model unique="false" dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false" + * @generated + */ + boolean isIsEquivalence(); + + /** + * Sets the value of the '{@link org.eclipse.papyrus.eastadl.variability.ConfigurationDecision#getCriterion <em>Criterion</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Criterion</em>' attribute. + * @see #getCriterion() + * @generated + */ + void setCriterion(String value); + + /** + * Sets the value of the '{@link org.eclipse.papyrus.eastadl.variability.ConfigurationDecision#getEffect <em>Effect</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Effect</em>' attribute. + * @see #getEffect() + * @generated + */ + void setEffect(String value); + + /** + * Sets the value of the '{@link org.eclipse.papyrus.eastadl.variability.ConfigurationDecision#isIsEquivalence <em>Is Equivalence</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Is Equivalence</em>' attribute. + * @see #isIsEquivalence() + * @generated + */ + void setIsEquivalence(boolean value); + + /** + * Sets the value of the '{@link org.eclipse.papyrus.eastadl.variability.ConfigurationDecision#getSelectionCriterion <em>Selection Criterion</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Selection Criterion</em>' reference. + * @see #getSelectionCriterion() + * @generated + */ + void setSelectionCriterion(SelectionCriterion value); + +} // ConfigurationDecision |