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