--- a
+++ b/src/main/java/genericbcm/impl/UnitImpl.java
@@ -0,0 +1,555 @@
+/**
+ */
+package genericbcm.impl;
+
+import genericbcm.BusinessProcessOnUnitLink;
+import genericbcm.Dependency;
+import genericbcm.DerivedMetrics;
+import genericbcm.GenericbcmPackage;
+import genericbcm.LogicalGroupMemberLink;
+import genericbcm.Unit;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link genericbcm.impl.UnitImpl#getComputedAvailability <em>Computed Availability</em>}</li>
+ * <li>{@link genericbcm.impl.UnitImpl#getRTO_Derived_QEC <em>RTO Derived QEC</em>}</li>
+ * <li>{@link genericbcm.impl.UnitImpl#getRPODerived <em>RPO Derived</em>}</li>
+ * <li>{@link genericbcm.impl.UnitImpl#getRTODerivedNormalPeriod <em>RTO Derived Normal Period</em>}</li>
+ * <li>{@link genericbcm.impl.UnitImpl#getWeight <em>Weight</em>}</li>
+ * <li>{@link genericbcm.impl.UnitImpl#getDeps <em>Deps</em>}</li>
+ * <li>{@link genericbcm.impl.UnitImpl#getActivities <em>Activities</em>}</li>
+ * <li>{@link genericbcm.impl.UnitImpl#getMemberOfLogicalGroup <em>Member Of Logical Group</em>}</li>
+ * <li>{@link genericbcm.impl.UnitImpl#getIncommingDependencies <em>Incomming Dependencies</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class UnitImpl extends NameableImpl implements Unit {
+ /**
+ * The default value of the '{@link #getComputedAvailability() <em>Computed Availability</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getComputedAvailability()
+ * @generated
+ * @ordered
+ */
+ protected static final double COMPUTED_AVAILABILITY_EDEFAULT = 1.0;
+
+ /**
+ * The cached value of the '{@link #getComputedAvailability() <em>Computed Availability</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getComputedAvailability()
+ * @generated
+ * @ordered
+ */
+ protected double computedAvailability = COMPUTED_AVAILABILITY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRTO_Derived_QEC() <em>RTO Derived QEC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRTO_Derived_QEC()
+ * @generated
+ * @ordered
+ */
+ protected static final double RTO_DERIVED_QEC_EDEFAULT = -1.0;
+
+ /**
+ * The cached value of the '{@link #getRTO_Derived_QEC() <em>RTO Derived QEC</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRTO_Derived_QEC()
+ * @generated
+ * @ordered
+ */
+ protected double rtO_Derived_QEC = RTO_DERIVED_QEC_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRPODerived() <em>RPO Derived</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRPODerived()
+ * @generated
+ * @ordered
+ */
+ protected static final double RPO_DERIVED_EDEFAULT = -1.0;
+
+ /**
+ * The cached value of the '{@link #getRPODerived() <em>RPO Derived</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRPODerived()
+ * @generated
+ * @ordered
+ */
+ protected double rpoDerived = RPO_DERIVED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRTODerivedNormalPeriod() <em>RTO Derived Normal Period</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRTODerivedNormalPeriod()
+ * @generated
+ * @ordered
+ */
+ protected static final double RTO_DERIVED_NORMAL_PERIOD_EDEFAULT = -1.0;
+
+ /**
+ * The cached value of the '{@link #getRTODerivedNormalPeriod() <em>RTO Derived Normal Period</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRTODerivedNormalPeriod()
+ * @generated
+ * @ordered
+ */
+ protected double rtoDerivedNormalPeriod = RTO_DERIVED_NORMAL_PERIOD_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getWeight() <em>Weight</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWeight()
+ * @generated
+ * @ordered
+ */
+ protected static final int WEIGHT_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getWeight() <em>Weight</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWeight()
+ * @generated
+ * @ordered
+ */
+ protected int weight = WEIGHT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDeps() <em>Deps</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeps()
+ * @generated
+ * @ordered
+ */
+ protected static final int DEPS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getDeps() <em>Deps</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeps()
+ * @generated
+ * @ordered
+ */
+ protected int deps = DEPS_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getActivities() <em>Activities</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActivities()
+ * @generated
+ * @ordered
+ */
+ protected EList<BusinessProcessOnUnitLink> activities;
+
+ /**
+ * The cached value of the '{@link #getMemberOfLogicalGroup() <em>Member Of Logical Group</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMemberOfLogicalGroup()
+ * @generated
+ * @ordered
+ */
+ protected EList<LogicalGroupMemberLink> memberOfLogicalGroup;
+
+ /**
+ * The cached value of the '{@link #getIncommingDependencies() <em>Incomming Dependencies</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIncommingDependencies()
+ * @generated
+ * @ordered
+ */
+ protected EList<Dependency> incommingDependencies;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UnitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GenericbcmPackage.Literals.UNIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getComputedAvailability() {
+ return computedAvailability;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getRTO_Derived_QEC() {
+ return rtO_Derived_QEC;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getRPODerived() {
+ return rpoDerived;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getRTODerivedNormalPeriod() {
+ return rtoDerivedNormalPeriod;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getWeight() {
+ return weight;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setWeight(int newWeight) {
+ int oldWeight = weight;
+ weight = newWeight;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GenericbcmPackage.UNIT__WEIGHT, oldWeight, weight));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getDeps() {
+ return deps;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDeps(int newDeps) {
+ int oldDeps = deps;
+ deps = newDeps;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GenericbcmPackage.UNIT__DEPS, oldDeps, deps));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<BusinessProcessOnUnitLink> getActivities() {
+ if (activities == null) {
+ activities = new EObjectWithInverseResolvingEList<BusinessProcessOnUnitLink>(BusinessProcessOnUnitLink.class, this, GenericbcmPackage.UNIT__ACTIVITIES, GenericbcmPackage.BUSINESS_PROCESS_ON_UNIT_LINK__TO);
+ }
+ return activities;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<LogicalGroupMemberLink> getMemberOfLogicalGroup() {
+ if (memberOfLogicalGroup == null) {
+ memberOfLogicalGroup = new EObjectWithInverseResolvingEList<LogicalGroupMemberLink>(LogicalGroupMemberLink.class, this, GenericbcmPackage.UNIT__MEMBER_OF_LOGICAL_GROUP, GenericbcmPackage.LOGICAL_GROUP_MEMBER_LINK__TO);
+ }
+ return memberOfLogicalGroup;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Dependency> getIncommingDependencies() {
+ if (incommingDependencies == null) {
+ incommingDependencies = new EObjectWithInverseResolvingEList<Dependency>(Dependency.class, this, GenericbcmPackage.UNIT__INCOMMING_DEPENDENCIES, GenericbcmPackage.DEPENDENCY__ON);
+ }
+ return incommingDependencies;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case GenericbcmPackage.UNIT__ACTIVITIES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getActivities()).basicAdd(otherEnd, msgs);
+ case GenericbcmPackage.UNIT__MEMBER_OF_LOGICAL_GROUP:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getMemberOfLogicalGroup()).basicAdd(otherEnd, msgs);
+ case GenericbcmPackage.UNIT__INCOMMING_DEPENDENCIES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getIncommingDependencies()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case GenericbcmPackage.UNIT__ACTIVITIES:
+ return ((InternalEList<?>)getActivities()).basicRemove(otherEnd, msgs);
+ case GenericbcmPackage.UNIT__MEMBER_OF_LOGICAL_GROUP:
+ return ((InternalEList<?>)getMemberOfLogicalGroup()).basicRemove(otherEnd, msgs);
+ case GenericbcmPackage.UNIT__INCOMMING_DEPENDENCIES:
+ return ((InternalEList<?>)getIncommingDependencies()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GenericbcmPackage.UNIT__COMPUTED_AVAILABILITY:
+ return getComputedAvailability();
+ case GenericbcmPackage.UNIT__RTO_DERIVED_QEC:
+ return getRTO_Derived_QEC();
+ case GenericbcmPackage.UNIT__RPO_DERIVED:
+ return getRPODerived();
+ case GenericbcmPackage.UNIT__RTO_DERIVED_NORMAL_PERIOD:
+ return getRTODerivedNormalPeriod();
+ case GenericbcmPackage.UNIT__WEIGHT:
+ return getWeight();
+ case GenericbcmPackage.UNIT__DEPS:
+ return getDeps();
+ case GenericbcmPackage.UNIT__ACTIVITIES:
+ return getActivities();
+ case GenericbcmPackage.UNIT__MEMBER_OF_LOGICAL_GROUP:
+ return getMemberOfLogicalGroup();
+ case GenericbcmPackage.UNIT__INCOMMING_DEPENDENCIES:
+ return getIncommingDependencies();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GenericbcmPackage.UNIT__WEIGHT:
+ setWeight((Integer)newValue);
+ return;
+ case GenericbcmPackage.UNIT__DEPS:
+ setDeps((Integer)newValue);
+ return;
+ case GenericbcmPackage.UNIT__ACTIVITIES:
+ getActivities().clear();
+ getActivities().addAll((Collection<? extends BusinessProcessOnUnitLink>)newValue);
+ return;
+ case GenericbcmPackage.UNIT__MEMBER_OF_LOGICAL_GROUP:
+ getMemberOfLogicalGroup().clear();
+ getMemberOfLogicalGroup().addAll((Collection<? extends LogicalGroupMemberLink>)newValue);
+ return;
+ case GenericbcmPackage.UNIT__INCOMMING_DEPENDENCIES:
+ getIncommingDependencies().clear();
+ getIncommingDependencies().addAll((Collection<? extends Dependency>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GenericbcmPackage.UNIT__WEIGHT:
+ setWeight(WEIGHT_EDEFAULT);
+ return;
+ case GenericbcmPackage.UNIT__DEPS:
+ setDeps(DEPS_EDEFAULT);
+ return;
+ case GenericbcmPackage.UNIT__ACTIVITIES:
+ getActivities().clear();
+ return;
+ case GenericbcmPackage.UNIT__MEMBER_OF_LOGICAL_GROUP:
+ getMemberOfLogicalGroup().clear();
+ return;
+ case GenericbcmPackage.UNIT__INCOMMING_DEPENDENCIES:
+ getIncommingDependencies().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GenericbcmPackage.UNIT__COMPUTED_AVAILABILITY:
+ return computedAvailability != COMPUTED_AVAILABILITY_EDEFAULT;
+ case GenericbcmPackage.UNIT__RTO_DERIVED_QEC:
+ return rtO_Derived_QEC != RTO_DERIVED_QEC_EDEFAULT;
+ case GenericbcmPackage.UNIT__RPO_DERIVED:
+ return rpoDerived != RPO_DERIVED_EDEFAULT;
+ case GenericbcmPackage.UNIT__RTO_DERIVED_NORMAL_PERIOD:
+ return rtoDerivedNormalPeriod != RTO_DERIVED_NORMAL_PERIOD_EDEFAULT;
+ case GenericbcmPackage.UNIT__WEIGHT:
+ return weight != WEIGHT_EDEFAULT;
+ case GenericbcmPackage.UNIT__DEPS:
+ return deps != DEPS_EDEFAULT;
+ case GenericbcmPackage.UNIT__ACTIVITIES:
+ return activities != null && !activities.isEmpty();
+ case GenericbcmPackage.UNIT__MEMBER_OF_LOGICAL_GROUP:
+ return memberOfLogicalGroup != null && !memberOfLogicalGroup.isEmpty();
+ case GenericbcmPackage.UNIT__INCOMMING_DEPENDENCIES:
+ return incommingDependencies != null && !incommingDependencies.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == DerivedMetrics.class) {
+ switch (derivedFeatureID) {
+ case GenericbcmPackage.UNIT__COMPUTED_AVAILABILITY: return GenericbcmPackage.DERIVED_METRICS__COMPUTED_AVAILABILITY;
+ case GenericbcmPackage.UNIT__RTO_DERIVED_QEC: return GenericbcmPackage.DERIVED_METRICS__RTO_DERIVED_QEC;
+ case GenericbcmPackage.UNIT__RPO_DERIVED: return GenericbcmPackage.DERIVED_METRICS__RPO_DERIVED;
+ case GenericbcmPackage.UNIT__RTO_DERIVED_NORMAL_PERIOD: return GenericbcmPackage.DERIVED_METRICS__RTO_DERIVED_NORMAL_PERIOD;
+ case GenericbcmPackage.UNIT__WEIGHT: return GenericbcmPackage.DERIVED_METRICS__WEIGHT;
+ case GenericbcmPackage.UNIT__DEPS: return GenericbcmPackage.DERIVED_METRICS__DEPS;
+ 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 == DerivedMetrics.class) {
+ switch (baseFeatureID) {
+ case GenericbcmPackage.DERIVED_METRICS__COMPUTED_AVAILABILITY: return GenericbcmPackage.UNIT__COMPUTED_AVAILABILITY;
+ case GenericbcmPackage.DERIVED_METRICS__RTO_DERIVED_QEC: return GenericbcmPackage.UNIT__RTO_DERIVED_QEC;
+ case GenericbcmPackage.DERIVED_METRICS__RPO_DERIVED: return GenericbcmPackage.UNIT__RPO_DERIVED;
+ case GenericbcmPackage.DERIVED_METRICS__RTO_DERIVED_NORMAL_PERIOD: return GenericbcmPackage.UNIT__RTO_DERIVED_NORMAL_PERIOD;
+ case GenericbcmPackage.DERIVED_METRICS__WEIGHT: return GenericbcmPackage.UNIT__WEIGHT;
+ case GenericbcmPackage.DERIVED_METRICS__DEPS: return GenericbcmPackage.UNIT__DEPS;
+ 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(" (ComputedAvailability: ");
+ result.append(computedAvailability);
+ result.append(", RTO_Derived_QEC: ");
+ result.append(rtO_Derived_QEC);
+ result.append(", RPODerived: ");
+ result.append(rpoDerived);
+ result.append(", RTODerivedNormalPeriod: ");
+ result.append(rtoDerivedNormalPeriod);
+ result.append(", Weight: ");
+ result.append(weight);
+ result.append(", Deps: ");
+ result.append(deps);
+ result.append(')');
+ return result.toString();
+ }
+
+} //UnitImpl