Switch to side-by-side view

--- a
+++ b/src/main/java/genericbcm/impl/BCMModelImpl.java
@@ -0,0 +1,517 @@
+/**
+ */
+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