/**
*/
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