From 5dc180cd314984ea7be3c6efcb4db6e2888d65da Mon Sep 17 00:00:00 2001 From: Stefan Herrnleben <s.herrnleben@syslex.de> Date: Mon, 7 Aug 2017 23:47:01 +0200 Subject: [PATCH] let adaptable dependency and adaptable variable implement identifier --- .../model/DNIMM3AP.xcore | 4 +- .../dni/dnimm3ap/AdaptableDependency.java | 3 +- .../dni/dnimm3ap/AdaptableVariable.java | 3 +- .../descartes/dni/dnimm3ap/DNIAPPackage.java | 44 ++++- .../impl/AdaptableDependencyImpl.java | 166 ++++++++++++++++++ .../dnimm3ap/impl/AdaptableVariableImpl.java | 166 ++++++++++++++++++ .../dni/dnimm3ap/impl/DNIAPPackageImpl.java | 2 + .../AdaptableDependencyItemProvider.java | 58 +++++- .../AdaptableVariableItemProvider.java | 58 +++++- .../dni/dnimm3ap/util/DNIAPSwitch.java | 2 + 10 files changed, 496 insertions(+), 10 deletions(-) diff --git a/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore b/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore index 68fa2fb0..e6bbf485 100644 --- a/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore +++ b/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore @@ -162,7 +162,7 @@ class AlternativeDependencySet extends AlternativeDependency { contains AdaptableDependency[] alternative } -class AdaptableDependency extends ICostable { +class AdaptableDependency extends ICostable, tools.descartes.dni.dnimm3.Identifier { contains tools.descartes.dni.dnimm3.Dependency[1] parameter } @@ -173,7 +173,7 @@ class AlternativeVariableSet extends AlternativeVariable { contains AdaptableVariable[] alternative } -class AdaptableVariable extends ICostable { +class AdaptableVariable extends ICostable, tools.descartes.dni.dnimm3.Identifier { contains tools.descartes.dni.dnimm3.Variable[1] parameter } diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableDependency.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableDependency.java index c78ea0f0..da97ca18 100644 --- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableDependency.java +++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableDependency.java @@ -3,6 +3,7 @@ package tools.descartes.dni.dnimm3ap; import tools.descartes.dni.dnimm3.Dependency; +import tools.descartes.dni.dnimm3.Identifier; /** * <!-- begin-user-doc --> @@ -20,7 +21,7 @@ import tools.descartes.dni.dnimm3.Dependency; * @model * @generated */ -public interface AdaptableDependency extends ICostable { +public interface AdaptableDependency extends ICostable, Identifier { /** * Returns the value of the '<em><b>Parameter</b></em>' containment reference. * <!-- begin-user-doc --> diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableVariable.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableVariable.java index 222be734..8bf48271 100644 --- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableVariable.java +++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableVariable.java @@ -2,6 +2,7 @@ */ package tools.descartes.dni.dnimm3ap; +import tools.descartes.dni.dnimm3.Identifier; import tools.descartes.dni.dnimm3.Variable; /** @@ -20,7 +21,7 @@ import tools.descartes.dni.dnimm3.Variable; * @model * @generated */ -public interface AdaptableVariable extends ICostable { +public interface AdaptableVariable extends ICostable, Identifier { /** * Returns the value of the '<em><b>Parameter</b></em>' containment reference. * <!-- begin-user-doc --> diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java index 3c088a27..5f6ecd01 100644 --- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java +++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java @@ -1276,6 +1276,24 @@ public interface DNIAPPackage extends EPackage { */ int ADAPTABLE_DEPENDENCY__COST = ICOSTABLE__COST; + /** + * The feature id for the '<em><b>Uid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ADAPTABLE_DEPENDENCY__UID = ICOSTABLE_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Uid generated</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ADAPTABLE_DEPENDENCY__UID_GENERATED = ICOSTABLE_FEATURE_COUNT + 1; + /** * The feature id for the '<em><b>Parameter</b></em>' containment reference. * <!-- begin-user-doc --> @@ -1283,7 +1301,7 @@ public interface DNIAPPackage extends EPackage { * @generated * @ordered */ - int ADAPTABLE_DEPENDENCY__PARAMETER = ICOSTABLE_FEATURE_COUNT + 0; + int ADAPTABLE_DEPENDENCY__PARAMETER = ICOSTABLE_FEATURE_COUNT + 2; /** * The number of structural features of the '<em>Adaptable Dependency</em>' class. @@ -1292,7 +1310,7 @@ public interface DNIAPPackage extends EPackage { * @generated * @ordered */ - int ADAPTABLE_DEPENDENCY_FEATURE_COUNT = ICOSTABLE_FEATURE_COUNT + 1; + int ADAPTABLE_DEPENDENCY_FEATURE_COUNT = ICOSTABLE_FEATURE_COUNT + 3; /** * The number of operations of the '<em>Adaptable Dependency</em>' class. @@ -1387,6 +1405,24 @@ public interface DNIAPPackage extends EPackage { */ int ADAPTABLE_VARIABLE__COST = ICOSTABLE__COST; + /** + * The feature id for the '<em><b>Uid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ADAPTABLE_VARIABLE__UID = ICOSTABLE_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Uid generated</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ADAPTABLE_VARIABLE__UID_GENERATED = ICOSTABLE_FEATURE_COUNT + 1; + /** * The feature id for the '<em><b>Parameter</b></em>' containment reference. * <!-- begin-user-doc --> @@ -1394,7 +1430,7 @@ public interface DNIAPPackage extends EPackage { * @generated * @ordered */ - int ADAPTABLE_VARIABLE__PARAMETER = ICOSTABLE_FEATURE_COUNT + 0; + int ADAPTABLE_VARIABLE__PARAMETER = ICOSTABLE_FEATURE_COUNT + 2; /** * The number of structural features of the '<em>Adaptable Variable</em>' class. @@ -1403,7 +1439,7 @@ public interface DNIAPPackage extends EPackage { * @generated * @ordered */ - int ADAPTABLE_VARIABLE_FEATURE_COUNT = ICOSTABLE_FEATURE_COUNT + 1; + int ADAPTABLE_VARIABLE_FEATURE_COUNT = ICOSTABLE_FEATURE_COUNT + 3; /** * The number of operations of the '<em>Adaptable Variable</em>' class. diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableDependencyImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableDependencyImpl.java index 8ad9b606..38977fac 100644 --- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableDependencyImpl.java +++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableDependencyImpl.java @@ -17,10 +17,13 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.util.InternalEList; +import tools.descartes.dni.dnimm3.DNIPackage; import tools.descartes.dni.dnimm3.Dependency; +import tools.descartes.dni.dnimm3.Identifier; import tools.descartes.dni.dnimm3ap.AdaptableDependency; import tools.descartes.dni.dnimm3ap.Cost; import tools.descartes.dni.dnimm3ap.DNIAPPackage; @@ -34,6 +37,8 @@ import tools.descartes.dni.dnimm3ap.DNIAPPackage; * </p> * <ul> * <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableDependencyImpl#getCost <em>Cost</em>}</li> + * <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableDependencyImpl#getUid <em>Uid</em>}</li> + * <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableDependencyImpl#getUid_generated <em>Uid generated</em>}</li> * <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableDependencyImpl#getParameter <em>Parameter</em>}</li> * </ul> * @@ -50,6 +55,45 @@ public class AdaptableDependencyImpl extends MinimalEObjectImpl.Container implem */ protected EList<Cost> cost; + /** + * The default value of the '{@link #getUid() <em>Uid</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getUid() + * @generated + * @ordered + */ + protected static final String UID_EDEFAULT = null; + + /** + * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getUid() + * @generated + * @ordered + */ + protected String uid = UID_EDEFAULT; + + /** + * This is true if the Uid attribute has been set. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + protected boolean uidESet; + + /** + * The default value of the '{@link #getUid_generated() <em>Uid generated</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getUid_generated() + * @generated + * @ordered + */ + protected static final String UID_GENERATED_EDEFAULT = null; + /** * The cached value of the '{@link #getParameter() <em>Parameter</em>}' containment reference. * <!-- begin-user-doc --> @@ -91,6 +135,64 @@ public class AdaptableDependencyImpl extends MinimalEObjectImpl.Container implem return cost; } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getUid() { + return uid; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setUid(String newUid) { + String oldUid = uid; + uid = newUid; + boolean oldUidESet = uidESet; + uidESet = true; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_DEPENDENCY__UID, oldUid, uid, !oldUidESet)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void unsetUid() { + String oldUid = uid; + boolean oldUidESet = uidESet; + uid = UID_EDEFAULT; + uidESet = false; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.UNSET, DNIAPPackage.ADAPTABLE_DEPENDENCY__UID, oldUid, UID_EDEFAULT, oldUidESet)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isSetUid() { + return uidESet; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getUid_generated() { + if (((this.getUid() == null) || this.getUid().isEmpty())) { + this.setUid(EcoreUtil.generateUUID().toString()); + } + return this.getUid(); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -160,6 +262,10 @@ public class AdaptableDependencyImpl extends MinimalEObjectImpl.Container implem switch (featureID) { case DNIAPPackage.ADAPTABLE_DEPENDENCY__COST: return getCost(); + case DNIAPPackage.ADAPTABLE_DEPENDENCY__UID: + return getUid(); + case DNIAPPackage.ADAPTABLE_DEPENDENCY__UID_GENERATED: + return getUid_generated(); case DNIAPPackage.ADAPTABLE_DEPENDENCY__PARAMETER: return getParameter(); } @@ -179,6 +285,9 @@ public class AdaptableDependencyImpl extends MinimalEObjectImpl.Container implem getCost().clear(); getCost().addAll((Collection<? extends Cost>)newValue); return; + case DNIAPPackage.ADAPTABLE_DEPENDENCY__UID: + setUid((String)newValue); + return; case DNIAPPackage.ADAPTABLE_DEPENDENCY__PARAMETER: setParameter((Dependency)newValue); return; @@ -197,6 +306,9 @@ public class AdaptableDependencyImpl extends MinimalEObjectImpl.Container implem case DNIAPPackage.ADAPTABLE_DEPENDENCY__COST: getCost().clear(); return; + case DNIAPPackage.ADAPTABLE_DEPENDENCY__UID: + unsetUid(); + return; case DNIAPPackage.ADAPTABLE_DEPENDENCY__PARAMETER: setParameter((Dependency)null); return; @@ -214,10 +326,64 @@ public class AdaptableDependencyImpl extends MinimalEObjectImpl.Container implem switch (featureID) { case DNIAPPackage.ADAPTABLE_DEPENDENCY__COST: return cost != null && !cost.isEmpty(); + case DNIAPPackage.ADAPTABLE_DEPENDENCY__UID: + return isSetUid(); + case DNIAPPackage.ADAPTABLE_DEPENDENCY__UID_GENERATED: + return UID_GENERATED_EDEFAULT == null ? getUid_generated() != null : !UID_GENERATED_EDEFAULT.equals(getUid_generated()); case DNIAPPackage.ADAPTABLE_DEPENDENCY__PARAMETER: return parameter != null; } return super.eIsSet(featureID); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) { + if (baseClass == Identifier.class) { + switch (derivedFeatureID) { + case DNIAPPackage.ADAPTABLE_DEPENDENCY__UID: return DNIPackage.IDENTIFIER__UID; + case DNIAPPackage.ADAPTABLE_DEPENDENCY__UID_GENERATED: return DNIPackage.IDENTIFIER__UID_GENERATED; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) { + if (baseClass == Identifier.class) { + switch (baseFeatureID) { + case DNIPackage.IDENTIFIER__UID: return DNIAPPackage.ADAPTABLE_DEPENDENCY__UID; + case DNIPackage.IDENTIFIER__UID_GENERATED: return DNIAPPackage.ADAPTABLE_DEPENDENCY__UID_GENERATED; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (uid: "); + if (uidESet) result.append(uid); else result.append("<unset>"); + result.append(')'); + return result.toString(); + } + } //AdaptableDependencyImpl diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableVariableImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableVariableImpl.java index e79b96eb..b2b71582 100644 --- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableVariableImpl.java +++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableVariableImpl.java @@ -17,8 +17,11 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.util.InternalEList; +import tools.descartes.dni.dnimm3.DNIPackage; +import tools.descartes.dni.dnimm3.Identifier; import tools.descartes.dni.dnimm3.Variable; import tools.descartes.dni.dnimm3ap.AdaptableVariable; @@ -34,6 +37,8 @@ import tools.descartes.dni.dnimm3ap.DNIAPPackage; * </p> * <ul> * <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableVariableImpl#getCost <em>Cost</em>}</li> + * <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableVariableImpl#getUid <em>Uid</em>}</li> + * <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableVariableImpl#getUid_generated <em>Uid generated</em>}</li> * <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableVariableImpl#getParameter <em>Parameter</em>}</li> * </ul> * @@ -50,6 +55,45 @@ public class AdaptableVariableImpl extends MinimalEObjectImpl.Container implemen */ protected EList<Cost> cost; + /** + * The default value of the '{@link #getUid() <em>Uid</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getUid() + * @generated + * @ordered + */ + protected static final String UID_EDEFAULT = null; + + /** + * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getUid() + * @generated + * @ordered + */ + protected String uid = UID_EDEFAULT; + + /** + * This is true if the Uid attribute has been set. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + protected boolean uidESet; + + /** + * The default value of the '{@link #getUid_generated() <em>Uid generated</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getUid_generated() + * @generated + * @ordered + */ + protected static final String UID_GENERATED_EDEFAULT = null; + /** * The cached value of the '{@link #getParameter() <em>Parameter</em>}' containment reference. * <!-- begin-user-doc --> @@ -91,6 +135,64 @@ public class AdaptableVariableImpl extends MinimalEObjectImpl.Container implemen return cost; } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getUid() { + return uid; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setUid(String newUid) { + String oldUid = uid; + uid = newUid; + boolean oldUidESet = uidESet; + uidESet = true; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_VARIABLE__UID, oldUid, uid, !oldUidESet)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void unsetUid() { + String oldUid = uid; + boolean oldUidESet = uidESet; + uid = UID_EDEFAULT; + uidESet = false; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.UNSET, DNIAPPackage.ADAPTABLE_VARIABLE__UID, oldUid, UID_EDEFAULT, oldUidESet)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isSetUid() { + return uidESet; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getUid_generated() { + if (((this.getUid() == null) || this.getUid().isEmpty())) { + this.setUid(EcoreUtil.generateUUID().toString()); + } + return this.getUid(); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -160,6 +262,10 @@ public class AdaptableVariableImpl extends MinimalEObjectImpl.Container implemen switch (featureID) { case DNIAPPackage.ADAPTABLE_VARIABLE__COST: return getCost(); + case DNIAPPackage.ADAPTABLE_VARIABLE__UID: + return getUid(); + case DNIAPPackage.ADAPTABLE_VARIABLE__UID_GENERATED: + return getUid_generated(); case DNIAPPackage.ADAPTABLE_VARIABLE__PARAMETER: return getParameter(); } @@ -179,6 +285,9 @@ public class AdaptableVariableImpl extends MinimalEObjectImpl.Container implemen getCost().clear(); getCost().addAll((Collection<? extends Cost>)newValue); return; + case DNIAPPackage.ADAPTABLE_VARIABLE__UID: + setUid((String)newValue); + return; case DNIAPPackage.ADAPTABLE_VARIABLE__PARAMETER: setParameter((Variable)newValue); return; @@ -197,6 +306,9 @@ public class AdaptableVariableImpl extends MinimalEObjectImpl.Container implemen case DNIAPPackage.ADAPTABLE_VARIABLE__COST: getCost().clear(); return; + case DNIAPPackage.ADAPTABLE_VARIABLE__UID: + unsetUid(); + return; case DNIAPPackage.ADAPTABLE_VARIABLE__PARAMETER: setParameter((Variable)null); return; @@ -214,10 +326,64 @@ public class AdaptableVariableImpl extends MinimalEObjectImpl.Container implemen switch (featureID) { case DNIAPPackage.ADAPTABLE_VARIABLE__COST: return cost != null && !cost.isEmpty(); + case DNIAPPackage.ADAPTABLE_VARIABLE__UID: + return isSetUid(); + case DNIAPPackage.ADAPTABLE_VARIABLE__UID_GENERATED: + return UID_GENERATED_EDEFAULT == null ? getUid_generated() != null : !UID_GENERATED_EDEFAULT.equals(getUid_generated()); case DNIAPPackage.ADAPTABLE_VARIABLE__PARAMETER: return parameter != null; } return super.eIsSet(featureID); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) { + if (baseClass == Identifier.class) { + switch (derivedFeatureID) { + case DNIAPPackage.ADAPTABLE_VARIABLE__UID: return DNIPackage.IDENTIFIER__UID; + case DNIAPPackage.ADAPTABLE_VARIABLE__UID_GENERATED: return DNIPackage.IDENTIFIER__UID_GENERATED; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) { + if (baseClass == Identifier.class) { + switch (baseFeatureID) { + case DNIPackage.IDENTIFIER__UID: return DNIAPPackage.ADAPTABLE_VARIABLE__UID; + case DNIPackage.IDENTIFIER__UID_GENERATED: return DNIAPPackage.ADAPTABLE_VARIABLE__UID_GENERATED; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (uid: "); + if (uidESet) result.append(uid); else result.append("<unset>"); + result.append(')'); + return result.toString(); + } + } //AdaptableVariableImpl diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java index b520acd1..6b257f91 100644 --- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java +++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java @@ -1228,8 +1228,10 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage { linkAdaptationGroupEClass.getESuperTypes().add(this.getIAdaptationGroup()); alternativeDependencySetEClass.getESuperTypes().add(this.getAlternativeDependency()); adaptableDependencyEClass.getESuperTypes().add(this.getICostable()); + adaptableDependencyEClass.getESuperTypes().add(theDNIPackage.getIdentifier()); alternativeVariableSetEClass.getESuperTypes().add(this.getAlternativeVariable()); adaptableVariableEClass.getESuperTypes().add(this.getICostable()); + adaptableVariableEClass.getESuperTypes().add(theDNIPackage.getIdentifier()); investmentEClass.getESuperTypes().add(this.getCost()); handlingTimeEClass.getESuperTypes().add(this.getCost()); fixedCostFunctionEClass.getESuperTypes().add(this.getICostFunction()); diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableDependencyItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableDependencyItemProvider.java index 8f091176..dab142f3 100644 --- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableDependencyItemProvider.java +++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableDependencyItemProvider.java @@ -13,17 +13,20 @@ import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; import org.eclipse.emf.edit.provider.IItemPropertySource; import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; import tools.descartes.dni.dnimm3.DNIFactory; +import tools.descartes.dni.dnimm3.DNIPackage; import tools.descartes.dni.dnimm3ap.AdaptableDependency; import tools.descartes.dni.dnimm3ap.DNIAPFactory; import tools.descartes.dni.dnimm3ap.DNIAPPackage; @@ -63,10 +66,56 @@ public class AdaptableDependencyItemProvider if (itemPropertyDescriptors == null) { super.getPropertyDescriptors(object); + addUidPropertyDescriptor(object); + addUid_generatedPropertyDescriptor(object); } return itemPropertyDescriptors; } + /** + * This adds a property descriptor for the Uid feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addUidPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Identifier_uid_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_feature", "_UI_Identifier_type"), + DNIPackage.Literals.IDENTIFIER__UID, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Uid generated feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addUid_generatedPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Identifier_uid_generated_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_generated_feature", "_UI_Identifier_type"), + DNIPackage.Literals.IDENTIFIER__UID_GENERATED, + false, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + /** * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or @@ -117,7 +166,10 @@ public class AdaptableDependencyItemProvider */ @Override public String getText(Object object) { - return getString("_UI_AdaptableDependency_type"); + String label = ((AdaptableDependency)object).getUid(); + return label == null || label.length() == 0 ? + getString("_UI_AdaptableDependency_type") : + getString("_UI_AdaptableDependency_type") + " " + label; } @@ -133,6 +185,10 @@ public class AdaptableDependencyItemProvider updateChildren(notification); switch (notification.getFeatureID(AdaptableDependency.class)) { + case DNIAPPackage.ADAPTABLE_DEPENDENCY__UID: + case DNIAPPackage.ADAPTABLE_DEPENDENCY__UID_GENERATED: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; case DNIAPPackage.ADAPTABLE_DEPENDENCY__COST: case DNIAPPackage.ADAPTABLE_DEPENDENCY__PARAMETER: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableVariableItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableVariableItemProvider.java index d8c91cbe..0f044a93 100644 --- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableVariableItemProvider.java +++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableVariableItemProvider.java @@ -13,17 +13,20 @@ import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; import org.eclipse.emf.edit.provider.IItemPropertySource; import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; import tools.descartes.dni.dnimm3.DNIFactory; +import tools.descartes.dni.dnimm3.DNIPackage; import tools.descartes.dni.dnimm3ap.AdaptableVariable; import tools.descartes.dni.dnimm3ap.DNIAPFactory; import tools.descartes.dni.dnimm3ap.DNIAPPackage; @@ -63,10 +66,56 @@ public class AdaptableVariableItemProvider if (itemPropertyDescriptors == null) { super.getPropertyDescriptors(object); + addUidPropertyDescriptor(object); + addUid_generatedPropertyDescriptor(object); } return itemPropertyDescriptors; } + /** + * This adds a property descriptor for the Uid feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addUidPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Identifier_uid_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_feature", "_UI_Identifier_type"), + DNIPackage.Literals.IDENTIFIER__UID, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Uid generated feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addUid_generatedPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Identifier_uid_generated_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Identifier_uid_generated_feature", "_UI_Identifier_type"), + DNIPackage.Literals.IDENTIFIER__UID_GENERATED, + false, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + /** * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or @@ -117,7 +166,10 @@ public class AdaptableVariableItemProvider */ @Override public String getText(Object object) { - return getString("_UI_AdaptableVariable_type"); + String label = ((AdaptableVariable)object).getUid(); + return label == null || label.length() == 0 ? + getString("_UI_AdaptableVariable_type") : + getString("_UI_AdaptableVariable_type") + " " + label; } @@ -133,6 +185,10 @@ public class AdaptableVariableItemProvider updateChildren(notification); switch (notification.getFeatureID(AdaptableVariable.class)) { + case DNIAPPackage.ADAPTABLE_VARIABLE__UID: + case DNIAPPackage.ADAPTABLE_VARIABLE__UID_GENERATED: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; case DNIAPPackage.ADAPTABLE_VARIABLE__COST: case DNIAPPackage.ADAPTABLE_VARIABLE__PARAMETER: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPSwitch.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPSwitch.java index d014dde1..81a94bac 100644 --- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPSwitch.java +++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/util/DNIAPSwitch.java @@ -210,6 +210,7 @@ public class DNIAPSwitch<T1> extends Switch<T1> { AdaptableDependency adaptableDependency = (AdaptableDependency)theEObject; T1 result = caseAdaptableDependency(adaptableDependency); if (result == null) result = caseICostable(adaptableDependency); + if (result == null) result = caseIdentifier(adaptableDependency); if (result == null) result = defaultCase(theEObject); return result; } @@ -230,6 +231,7 @@ public class DNIAPSwitch<T1> extends Switch<T1> { AdaptableVariable adaptableVariable = (AdaptableVariable)theEObject; T1 result = caseAdaptableVariable(adaptableVariable); if (result == null) result = caseICostable(adaptableVariable); + if (result == null) result = caseIdentifier(adaptableVariable); if (result == null) result = defaultCase(theEObject); return result; } -- GitLab