--- a
+++ b/src/main/java/genericbcm/util/GenericbcmSwitch.java
@@ -0,0 +1,797 @@
+/**
+ */
+package genericbcm.util;
+
+import genericbcm.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see genericbcm.GenericbcmPackage
+ * @generated
+ */
+public class GenericbcmSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static GenericbcmPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public GenericbcmSwitch() {
+		if (modelPackage == null) {
+			modelPackage = GenericbcmPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @parameter ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case GenericbcmPackage.BCM_MODEL: {
+				BCMModel bcmModel = (BCMModel)theEObject;
+				T result = caseBCMModel(bcmModel);
+				if (result == null) result = caseNameable(bcmModel);
+				if (result == null) result = caseUUID(bcmModel);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.UNIT: {
+				Unit unit = (Unit)theEObject;
+				T result = caseUnit(unit);
+				if (result == null) result = caseNameable(unit);
+				if (result == null) result = caseDerivedMetrics(unit);
+				if (result == null) result = caseUUID(unit);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.LOGICAL_GROUP: {
+				LogicalGroup logicalGroup = (LogicalGroup)theEObject;
+				T result = caseLogicalGroup(logicalGroup);
+				if (result == null) result = caseUnit(logicalGroup);
+				if (result == null) result = caseNameable(logicalGroup);
+				if (result == null) result = caseDerivedMetrics(logicalGroup);
+				if (result == null) result = caseUUID(logicalGroup);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.AND: {
+				AND and = (AND)theEObject;
+				T result = caseAND(and);
+				if (result == null) result = caseLogicalGroup(and);
+				if (result == null) result = caseUnit(and);
+				if (result == null) result = caseNameable(and);
+				if (result == null) result = caseDerivedMetrics(and);
+				if (result == null) result = caseUUID(and);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.OR: {
+				OR or = (OR)theEObject;
+				T result = caseOR(or);
+				if (result == null) result = caseLogicalGroup(or);
+				if (result == null) result = caseUnit(or);
+				if (result == null) result = caseNameable(or);
+				if (result == null) result = caseDerivedMetrics(or);
+				if (result == null) result = caseUUID(or);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.RESOURCE: {
+				Resource resource = (Resource)theEObject;
+				T result = caseResource(resource);
+				if (result == null) result = caseUnit(resource);
+				if (result == null) result = caseDerivedMetricsSetable(resource);
+				if (result == null) result = caseNameable(resource);
+				if (result == null) result = caseDerivedMetrics(resource);
+				if (result == null) result = caseUUID(resource);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.BUSINESS_PROCESS: {
+				BusinessProcess businessProcess = (BusinessProcess)theEObject;
+				T result = caseBusinessProcess(businessProcess);
+				if (result == null) result = caseNameable(businessProcess);
+				if (result == null) result = caseDerivedMetricsSetable(businessProcess);
+				if (result == null) result = caseUUID(businessProcess);
+				if (result == null) result = caseDerivedMetrics(businessProcess);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.THREAT: {
+				Threat threat = (Threat)theEObject;
+				T result = caseThreat(threat);
+				if (result == null) result = caseNameable(threat);
+				if (result == null) result = caseUUID(threat);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.SPORADIC_THREAT: {
+				SporadicThreat sporadicThreat = (SporadicThreat)theEObject;
+				T result = caseSporadicThreat(sporadicThreat);
+				if (result == null) result = caseThreat(sporadicThreat);
+				if (result == null) result = caseNameable(sporadicThreat);
+				if (result == null) result = caseUUID(sporadicThreat);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.PERIODIC_THREAT: {
+				PeriodicThreat periodicThreat = (PeriodicThreat)theEObject;
+				T result = casePeriodicThreat(periodicThreat);
+				if (result == null) result = caseThreat(periodicThreat);
+				if (result == null) result = caseNameable(periodicThreat);
+				if (result == null) result = caseUUID(periodicThreat);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.DEPENDENCY: {
+				Dependency dependency = (Dependency)theEObject;
+				T result = caseDependency(dependency);
+				if (result == null) result = caseThreat(dependency);
+				if (result == null) result = caseNameable(dependency);
+				if (result == null) result = caseUUID(dependency);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.CAUSE: {
+				Cause cause = (Cause)theEObject;
+				T result = caseCause(cause);
+				if (result == null) result = caseNameable(cause);
+				if (result == null) result = caseUUID(cause);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.RECOVERY: {
+				Recovery recovery = (Recovery)theEObject;
+				T result = caseRecovery(recovery);
+				if (result == null) result = caseNameable(recovery);
+				if (result == null) result = caseDerivedMetrics(recovery);
+				if (result == null) result = caseUUID(recovery);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.FAILURE_EFFECT: {
+				FailureEffect failureEffect = (FailureEffect)theEObject;
+				T result = caseFailureEffect(failureEffect);
+				if (result == null) result = caseNameable(failureEffect);
+				if (result == null) result = caseUUID(failureEffect);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.NAMEABLE: {
+				Nameable nameable = (Nameable)theEObject;
+				T result = caseNameable(nameable);
+				if (result == null) result = caseUUID(nameable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.SINGLE_TASK_RESOURCE: {
+				SingleTaskResource singleTaskResource = (SingleTaskResource)theEObject;
+				T result = caseSingleTaskResource(singleTaskResource);
+				if (result == null) result = caseResource(singleTaskResource);
+				if (result == null) result = caseUnit(singleTaskResource);
+				if (result == null) result = caseDerivedMetricsSetable(singleTaskResource);
+				if (result == null) result = caseNameable(singleTaskResource);
+				if (result == null) result = caseDerivedMetrics(singleTaskResource);
+				if (result == null) result = caseUUID(singleTaskResource);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.LOGICAL_GROUP_MEMBER_LINK: {
+				LogicalGroupMemberLink logicalGroupMemberLink = (LogicalGroupMemberLink)theEObject;
+				T result = caseLogicalGroupMemberLink(logicalGroupMemberLink);
+				if (result == null) result = caseNameable(logicalGroupMemberLink);
+				if (result == null) result = caseUUID(logicalGroupMemberLink);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.BUSINESS_PROCESS_ON_UNIT_LINK: {
+				BusinessProcessOnUnitLink businessProcessOnUnitLink = (BusinessProcessOnUnitLink)theEObject;
+				T result = caseBusinessProcessOnUnitLink(businessProcessOnUnitLink);
+				if (result == null) result = caseNameable(businessProcessOnUnitLink);
+				if (result == null) result = caseUUID(businessProcessOnUnitLink);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.MULTI_CLUSTER: {
+				MultiCluster multiCluster = (MultiCluster)theEObject;
+				T result = caseMultiCluster(multiCluster);
+				if (result == null) result = caseNameable(multiCluster);
+				if (result == null) result = caseUUID(multiCluster);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.DOMAIN: {
+				Domain domain = (Domain)theEObject;
+				T result = caseDomain(domain);
+				if (result == null) result = caseNameable(domain);
+				if (result == null) result = caseUUID(domain);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.DERIVED_METRICS_SETABLE: {
+				DerivedMetricsSetable derivedMetricsSetable = (DerivedMetricsSetable)theEObject;
+				T result = caseDerivedMetricsSetable(derivedMetricsSetable);
+				if (result == null) result = caseDerivedMetrics(derivedMetricsSetable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.DERIVED_METRICS: {
+				DerivedMetrics derivedMetrics = (DerivedMetrics)theEObject;
+				T result = caseDerivedMetrics(derivedMetrics);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.SUPPORT_RESOURCE: {
+				SupportResource supportResource = (SupportResource)theEObject;
+				T result = caseSupportResource(supportResource);
+				if (result == null) result = caseResource(supportResource);
+				if (result == null) result = caseUnit(supportResource);
+				if (result == null) result = caseDerivedMetricsSetable(supportResource);
+				if (result == null) result = caseNameable(supportResource);
+				if (result == null) result = caseDerivedMetrics(supportResource);
+				if (result == null) result = caseUUID(supportResource);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.SUPPORT_RESOURCE_TO_RESOURCE_LINK: {
+				SupportResourceToResourceLink supportResourceToResourceLink = (SupportResourceToResourceLink)theEObject;
+				T result = caseSupportResourceToResourceLink(supportResourceToResourceLink);
+				if (result == null) result = caseNameable(supportResourceToResourceLink);
+				if (result == null) result = caseUUID(supportResourceToResourceLink);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.UUID: {
+				UUID uuid = (UUID)theEObject;
+				T result = caseUUID(uuid);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.SLA: {
+				SLA sla = (SLA)theEObject;
+				T result = caseSLA(sla);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.BUSINESS_IMPACT_TABLE_ROW: {
+				BusinessImpactTableRow businessImpactTableRow = (BusinessImpactTableRow)theEObject;
+				T result = caseBusinessImpactTableRow(businessImpactTableRow);
+				if (result == null) result = caseNameable(businessImpactTableRow);
+				if (result == null) result = caseUUID(businessImpactTableRow);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.RISK_CATEGORY: {
+				RiskCategory riskCategory = (RiskCategory)theEObject;
+				T result = caseRiskCategory(riskCategory);
+				if (result == null) result = caseNameable(riskCategory);
+				if (result == null) result = caseUUID(riskCategory);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.RESOURCE_TYPE: {
+				ResourceType resourceType = (ResourceType)theEObject;
+				T result = caseResourceType(resourceType);
+				if (result == null) result = caseNameable(resourceType);
+				if (result == null) result = caseUUID(resourceType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case GenericbcmPackage.THREAT_LOG_CATEGORY: {
+				ThreatLogCategory threatLogCategory = (ThreatLogCategory)theEObject;
+				T result = caseThreatLogCategory(threatLogCategory);
+				if (result == null) result = caseNameable(threatLogCategory);
+				if (result == null) result = caseUUID(threatLogCategory);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>BCM Model</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>BCM Model</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseBCMModel(BCMModel object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Unit</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Unit</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseUnit(Unit object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Logical Group</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Logical Group</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLogicalGroup(LogicalGroup object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>AND</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>AND</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAND(AND object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>OR</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>OR</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOR(OR object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Resource</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Resource</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseResource(Resource object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Business Process</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Business Process</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseBusinessProcess(BusinessProcess object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Threat</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Threat</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseThreat(Threat object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Sporadic Threat</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Sporadic Threat</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSporadicThreat(SporadicThreat object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Periodic Threat</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Periodic Threat</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePeriodicThreat(PeriodicThreat object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Dependency</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Dependency</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDependency(Dependency object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Cause</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Cause</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseCause(Cause object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Recovery</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Recovery</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseRecovery(Recovery object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Failure Effect</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Failure Effect</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseFailureEffect(FailureEffect object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Nameable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Nameable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseNameable(Nameable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Single Task Resource</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Single Task Resource</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSingleTaskResource(SingleTaskResource object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Logical Group Member Link</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Logical Group Member Link</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLogicalGroupMemberLink(LogicalGroupMemberLink object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Business Process On Unit Link</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Business Process On Unit Link</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseBusinessProcessOnUnitLink(BusinessProcessOnUnitLink object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Multi Cluster</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Multi Cluster</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseMultiCluster(MultiCluster object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Domain</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Domain</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDomain(Domain object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Derived Metrics Setable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Derived Metrics Setable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDerivedMetricsSetable(DerivedMetricsSetable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Derived Metrics</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Derived Metrics</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDerivedMetrics(DerivedMetrics object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Support Resource</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Support Resource</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSupportResource(SupportResource object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Support Resource To Resource Link</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Support Resource To Resource Link</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSupportResourceToResourceLink(SupportResourceToResourceLink object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>UUID</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>UUID</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseUUID(UUID object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>SLA</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>SLA</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSLA(SLA object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Business Impact Table Row</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Business Impact Table Row</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseBusinessImpactTableRow(BusinessImpactTableRow object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Risk Category</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Risk Category</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseRiskCategory(RiskCategory object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Resource Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Resource Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseResourceType(ResourceType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Threat Log Category</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Threat Log Category</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseThreatLogCategory(ThreatLogCategory object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //GenericbcmSwitch