/**
*/
package genericbcm.impl;
import genericbcm.BCMModel;
import genericbcm.BusinessProcess;
import genericbcm.Domain;
import genericbcm.GenericbcmPackage;
import genericbcm.MultiCluster;
import genericbcm.Recovery;
import genericbcm.ResourceType;
import genericbcm.RiskCategory;
import genericbcm.Threat;
import genericbcm.ThreatLogCategory;
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.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.InternalEList;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>BCM Model</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link genericbcm.impl.BCMModelImpl#getUnits <em>Units</em>}</li>
* <li>{@link genericbcm.impl.BCMModelImpl#getActivities <em>Activities</em>}</li>
* <li>{@link genericbcm.impl.BCMModelImpl#getMulticlusters <em>Multiclusters</em>}</li>
* <li>{@link genericbcm.impl.BCMModelImpl#getGlobalThreats <em>Global Threats</em>}</li>
* <li>{@link genericbcm.impl.BCMModelImpl#getDomains <em>Domains</em>}</li>
* <li>{@link genericbcm.impl.BCMModelImpl#getRecoveries <em>Recoveries</em>}</li>
* <li>{@link genericbcm.impl.BCMModelImpl#getRiskCategories <em>Risk Categories</em>}</li>
* <li>{@link genericbcm.impl.BCMModelImpl#getResourceTypes <em>Resource Types</em>}</li>
* <li>{@link genericbcm.impl.BCMModelImpl#getThreatLogCategories <em>Threat Log Categories</em>}</li>
* <li>{@link genericbcm.impl.BCMModelImpl#isAutoBC <em>Auto BC</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class BCMModelImpl extends NameableImpl implements BCMModel {
/**
* The cached value of the '{@link #getUnits() <em>Units</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getUnits()
* @generated
* @ordered
*/
protected EList<Unit> units;
/**
* The cached value of the '{@link #getActivities() <em>Activities</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getActivities()
* @generated
* @ordered
*/
protected EList<BusinessProcess> activities;
/**
* The cached value of the '{@link #getMulticlusters() <em>Multiclusters</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getMulticlusters()
* @generated
* @ordered
*/
protected EList<MultiCluster> multiclusters;
/**
* The cached value of the '{@link #getGlobalThreats() <em>Global Threats</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getGlobalThreats()
* @generated
* @ordered
*/
protected EList<Threat> globalThreats;
/**
* The cached value of the '{@link #getDomains() <em>Domains</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDomains()
* @generated
* @ordered
*/
protected EList<Domain> domains;
/**
* The cached value of the '{@link #getRecoveries() <em>Recoveries</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getRecoveries()
* @generated
* @ordered
*/
protected EList<Recovery> recoveries;
/**
* The cached value of the '{@link #getRiskCategories() <em>Risk Categories</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getRiskCategories()
* @generated
* @ordered
*/
protected EList<RiskCategory> riskCategories;
/**
* The cached value of the '{@link #getResourceTypes() <em>Resource Types</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getResourceTypes()
* @generated
* @ordered
*/
protected EList<ResourceType> resourceTypes;
/**
* The cached value of the '{@link #getThreatLogCategories() <em>Threat Log Categories</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getThreatLogCategories()
* @generated
* @ordered
*/
protected EList<ThreatLogCategory> threatLogCategories;
/**
* The default value of the '{@link #isAutoBC() <em>Auto BC</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isAutoBC()
* @generated
* @ordered
*/
protected static final boolean AUTO_BC_EDEFAULT = true;
/**
* The cached value of the '{@link #isAutoBC() <em>Auto BC</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isAutoBC()
* @generated
* @ordered
*/
protected boolean autoBC = AUTO_BC_EDEFAULT;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected BCMModelImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return GenericbcmPackage.Literals.BCM_MODEL;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<Unit> getUnits() {
if (units == null) {
units = new EObjectContainmentEList<Unit>(Unit.class, this, GenericbcmPackage.BCM_MODEL__UNITS);
}
return units;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<BusinessProcess> getActivities() {
if (activities == null) {
activities = new EObjectContainmentEList<BusinessProcess>(BusinessProcess.class, this, GenericbcmPackage.BCM_MODEL__ACTIVITIES);
}
return activities;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<MultiCluster> getMulticlusters() {
if (multiclusters == null) {
multiclusters = new EObjectContainmentEList<MultiCluster>(MultiCluster.class, this, GenericbcmPackage.BCM_MODEL__MULTICLUSTERS);
}
return multiclusters;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<Threat> getGlobalThreats() {
if (globalThreats == null) {
globalThreats = new EObjectContainmentEList<Threat>(Threat.class, this, GenericbcmPackage.BCM_MODEL__GLOBAL_THREATS);
}
return globalThreats;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<Domain> getDomains() {
if (domains == null) {
domains = new EObjectContainmentEList<Domain>(Domain.class, this, GenericbcmPackage.BCM_MODEL__DOMAINS);
}
return domains;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<Recovery> getRecoveries() {
if (recoveries == null) {
recoveries = new EObjectContainmentEList<Recovery>(Recovery.class, this, GenericbcmPackage.BCM_MODEL__RECOVERIES);
}
return recoveries;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<RiskCategory> getRiskCategories() {
if (riskCategories == null) {
riskCategories = new EObjectContainmentEList<RiskCategory>(RiskCategory.class, this, GenericbcmPackage.BCM_MODEL__RISK_CATEGORIES);
}
return riskCategories;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<ResourceType> getResourceTypes() {
if (resourceTypes == null) {
resourceTypes = new EObjectContainmentEList<ResourceType>(ResourceType.class, this, GenericbcmPackage.BCM_MODEL__RESOURCE_TYPES);
}
return resourceTypes;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<ThreatLogCategory> getThreatLogCategories() {
if (threatLogCategories == null) {
threatLogCategories = new EObjectContainmentEList<ThreatLogCategory>(ThreatLogCategory.class, this, GenericbcmPackage.BCM_MODEL__THREAT_LOG_CATEGORIES);
}
return threatLogCategories;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isAutoBC() {
return autoBC;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setAutoBC(boolean newAutoBC) {
boolean oldAutoBC = autoBC;
autoBC = newAutoBC;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, GenericbcmPackage.BCM_MODEL__AUTO_BC, oldAutoBC, autoBC));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case GenericbcmPackage.BCM_MODEL__UNITS:
return ((InternalEList<?>)getUnits()).basicRemove(otherEnd, msgs);
case GenericbcmPackage.BCM_MODEL__ACTIVITIES:
return ((InternalEList<?>)getActivities()).basicRemove(otherEnd, msgs);
case GenericbcmPackage.BCM_MODEL__MULTICLUSTERS:
return ((InternalEList<?>)getMulticlusters()).basicRemove(otherEnd, msgs);
case GenericbcmPackage.BCM_MODEL__GLOBAL_THREATS:
return ((InternalEList<?>)getGlobalThreats()).basicRemove(otherEnd, msgs);
case GenericbcmPackage.BCM_MODEL__DOMAINS:
return ((InternalEList<?>)getDomains()).basicRemove(otherEnd, msgs);
case GenericbcmPackage.BCM_MODEL__RECOVERIES:
return ((InternalEList<?>)getRecoveries()).basicRemove(otherEnd, msgs);
case GenericbcmPackage.BCM_MODEL__RISK_CATEGORIES:
return ((InternalEList<?>)getRiskCategories()).basicRemove(otherEnd, msgs);
case GenericbcmPackage.BCM_MODEL__RESOURCE_TYPES:
return ((InternalEList<?>)getResourceTypes()).basicRemove(otherEnd, msgs);
case GenericbcmPackage.BCM_MODEL__THREAT_LOG_CATEGORIES:
return ((InternalEList<?>)getThreatLogCategories()).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.BCM_MODEL__UNITS:
return getUnits();
case GenericbcmPackage.BCM_MODEL__ACTIVITIES:
return getActivities();
case GenericbcmPackage.BCM_MODEL__MULTICLUSTERS:
return getMulticlusters();
case GenericbcmPackage.BCM_MODEL__GLOBAL_THREATS:
return getGlobalThreats();
case GenericbcmPackage.BCM_MODEL__DOMAINS:
return getDomains();
case GenericbcmPackage.BCM_MODEL__RECOVERIES:
return getRecoveries();
case GenericbcmPackage.BCM_MODEL__RISK_CATEGORIES:
return getRiskCategories();
case GenericbcmPackage.BCM_MODEL__RESOURCE_TYPES:
return getResourceTypes();
case GenericbcmPackage.BCM_MODEL__THREAT_LOG_CATEGORIES:
return getThreatLogCategories();
case GenericbcmPackage.BCM_MODEL__AUTO_BC:
return isAutoBC();
}
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.BCM_MODEL__UNITS:
getUnits().clear();
getUnits().addAll((Collection<? extends Unit>)newValue);
return;
case GenericbcmPackage.BCM_MODEL__ACTIVITIES:
getActivities().clear();
getActivities().addAll((Collection<? extends BusinessProcess>)newValue);
return;
case GenericbcmPackage.BCM_MODEL__MULTICLUSTERS:
getMulticlusters().clear();
getMulticlusters().addAll((Collection<? extends MultiCluster>)newValue);
return;
case GenericbcmPackage.BCM_MODEL__GLOBAL_THREATS:
getGlobalThreats().clear();
getGlobalThreats().addAll((Collection<? extends Threat>)newValue);
return;
case GenericbcmPackage.BCM_MODEL__DOMAINS:
getDomains().clear();
getDomains().addAll((Collection<? extends Domain>)newValue);
return;
case GenericbcmPackage.BCM_MODEL__RECOVERIES:
getRecoveries().clear();
getRecoveries().addAll((Collection<? extends Recovery>)newValue);
return;
case GenericbcmPackage.BCM_MODEL__RISK_CATEGORIES:
getRiskCategories().clear();
getRiskCategories().addAll((Collection<? extends RiskCategory>)newValue);
return;
case GenericbcmPackage.BCM_MODEL__RESOURCE_TYPES:
getResourceTypes().clear();
getResourceTypes().addAll((Collection<? extends ResourceType>)newValue);
return;
case GenericbcmPackage.BCM_MODEL__THREAT_LOG_CATEGORIES:
getThreatLogCategories().clear();
getThreatLogCategories().addAll((Collection<? extends ThreatLogCategory>)newValue);
return;
case GenericbcmPackage.BCM_MODEL__AUTO_BC:
setAutoBC((Boolean)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case GenericbcmPackage.BCM_MODEL__UNITS:
getUnits().clear();
return;
case GenericbcmPackage.BCM_MODEL__ACTIVITIES:
getActivities().clear();
return;
case GenericbcmPackage.BCM_MODEL__MULTICLUSTERS:
getMulticlusters().clear();
return;
case GenericbcmPackage.BCM_MODEL__GLOBAL_THREATS:
getGlobalThreats().clear();
return;
case GenericbcmPackage.BCM_MODEL__DOMAINS:
getDomains().clear();
return;
case GenericbcmPackage.BCM_MODEL__RECOVERIES:
getRecoveries().clear();
return;
case GenericbcmPackage.BCM_MODEL__RISK_CATEGORIES:
getRiskCategories().clear();
return;
case GenericbcmPackage.BCM_MODEL__RESOURCE_TYPES:
getResourceTypes().clear();
return;
case GenericbcmPackage.BCM_MODEL__THREAT_LOG_CATEGORIES:
getThreatLogCategories().clear();
return;
case GenericbcmPackage.BCM_MODEL__AUTO_BC:
setAutoBC(AUTO_BC_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case GenericbcmPackage.BCM_MODEL__UNITS:
return units != null && !units.isEmpty();
case GenericbcmPackage.BCM_MODEL__ACTIVITIES:
return activities != null && !activities.isEmpty();
case GenericbcmPackage.BCM_MODEL__MULTICLUSTERS:
return multiclusters != null && !multiclusters.isEmpty();
case GenericbcmPackage.BCM_MODEL__GLOBAL_THREATS:
return globalThreats != null && !globalThreats.isEmpty();
case GenericbcmPackage.BCM_MODEL__DOMAINS:
return domains != null && !domains.isEmpty();
case GenericbcmPackage.BCM_MODEL__RECOVERIES:
return recoveries != null && !recoveries.isEmpty();
case GenericbcmPackage.BCM_MODEL__RISK_CATEGORIES:
return riskCategories != null && !riskCategories.isEmpty();
case GenericbcmPackage.BCM_MODEL__RESOURCE_TYPES:
return resourceTypes != null && !resourceTypes.isEmpty();
case GenericbcmPackage.BCM_MODEL__THREAT_LOG_CATEGORIES:
return threatLogCategories != null && !threatLogCategories.isEmpty();
case GenericbcmPackage.BCM_MODEL__AUTO_BC:
return autoBC != AUTO_BC_EDEFAULT;
}
return super.eIsSet(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String toString() {
if (eIsProxy()) return super.toString();
StringBuffer result = new StringBuffer(super.toString());
result.append(" (autoBC: ");
result.append(autoBC);
result.append(')');
return result.toString();
}
} //BCMModelImpl