--- a
+++ b/src/main/java/genericbcm/impl/GenericbcmPackageImpl.java
@@ -0,0 +1,1899 @@
+/**
+ */
+package genericbcm.impl;
+
+import BcmScenario.BcmScenarioPackage;
+
+import BcmScenario.impl.BcmScenarioPackageImpl;
+
+import ecore.EcorePackage;
+
+import ecore.impl.EcorePackageImpl;
+
+import genericbcm.BCMModel;
+import genericbcm.BusinessImpactTableRow;
+import genericbcm.BusinessProcess;
+import genericbcm.BusinessProcessOnUnitLink;
+import genericbcm.Cause;
+import genericbcm.Dependency;
+import genericbcm.DerivedMetrics;
+import genericbcm.DerivedMetricsSetable;
+import genericbcm.Domain;
+import genericbcm.FailureEffect;
+import genericbcm.GenericbcmFactory;
+import genericbcm.GenericbcmPackage;
+import genericbcm.LogicalGroup;
+import genericbcm.LogicalGroupMemberLink;
+import genericbcm.MultiCluster;
+import genericbcm.Nameable;
+import genericbcm.PeriodicThreat;
+import genericbcm.Recovery;
+import genericbcm.Resource;
+import genericbcm.ResourceType;
+import genericbcm.RiskCategory;
+import genericbcm.SingleTaskResource;
+import genericbcm.SporadicThreat;
+import genericbcm.SupportResource;
+import genericbcm.SupportResourceToResourceLink;
+import genericbcm.Threat;
+import genericbcm.ThreatLogCategory;
+import genericbcm.Unit;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import uuid.UuidPackage;
+
+import uuid.impl.UuidPackageImpl;
+
+import yawl.YawlPackage;
+
+import yawl.impl.YawlPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GenericbcmPackageImpl extends EPackageImpl implements GenericbcmPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass bcmModelEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass unitEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass logicalGroupEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass andEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass orEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass resourceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass businessProcessEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass threatEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass sporadicThreatEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass periodicThreatEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dependencyEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass causeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass recoveryEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass failureEffectEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass nameableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass singleTaskResourceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass logicalGroupMemberLinkEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass businessProcessOnUnitLinkEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass multiClusterEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass domainEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass derivedMetricsSetableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass derivedMetricsEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass supportResourceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass supportResourceToResourceLinkEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass uuidEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass slaEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass businessImpactTableRowEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass riskCategoryEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass resourceTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass threatLogCategoryEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see genericbcm.GenericbcmPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private GenericbcmPackageImpl() {
+		super(eNS_URI, GenericbcmFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 * 
+	 * <p>This method is used to initialize {@link GenericbcmPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static GenericbcmPackage init() {
+		if (isInited) return (GenericbcmPackage) Registry.INSTANCE.getEPackage(GenericbcmPackage.eNS_URI);
+
+		// Obtain or create and register package
+		GenericbcmPackageImpl theGenericbcmPackage = (GenericbcmPackageImpl)(Registry.INSTANCE.get(eNS_URI) instanceof GenericbcmPackageImpl ? Registry.INSTANCE.get(eNS_URI) : new GenericbcmPackageImpl());
+
+		isInited = true;
+
+		// Obtain or create and register interdependencies
+		BcmScenarioPackageImpl theBcmScenarioPackage = (BcmScenarioPackageImpl)(Registry.INSTANCE.getEPackage(BcmScenarioPackage.eNS_URI) instanceof BcmScenarioPackageImpl ? Registry.INSTANCE.getEPackage(BcmScenarioPackage.eNS_URI) : BcmScenarioPackage.eINSTANCE);
+		UuidPackageImpl theUuidPackage = (UuidPackageImpl)(Registry.INSTANCE.getEPackage(UuidPackage.eNS_URI) instanceof UuidPackageImpl ? Registry.INSTANCE.getEPackage(UuidPackage.eNS_URI) : UuidPackage.eINSTANCE);
+		EcorePackageImpl theEcorePackage = (EcorePackageImpl)(Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI) instanceof EcorePackageImpl ? Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI) : EcorePackage.eINSTANCE);
+		YawlPackageImpl theYawlPackage = (YawlPackageImpl)(Registry.INSTANCE.getEPackage(YawlPackage.eNS_URI) instanceof YawlPackageImpl ? Registry.INSTANCE.getEPackage(YawlPackage.eNS_URI) : YawlPackage.eINSTANCE);
+
+		// Create package meta-data objects
+		theGenericbcmPackage.createPackageContents();
+		theBcmScenarioPackage.createPackageContents();
+		theUuidPackage.createPackageContents();
+		theEcorePackage.createPackageContents();
+		theYawlPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theGenericbcmPackage.initializePackageContents();
+		theBcmScenarioPackage.initializePackageContents();
+		theUuidPackage.initializePackageContents();
+		theEcorePackage.initializePackageContents();
+		theYawlPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theGenericbcmPackage.freeze();
+
+  
+		// Update the registry and return the package
+		Registry.INSTANCE.put(GenericbcmPackage.eNS_URI, theGenericbcmPackage);
+		return theGenericbcmPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getBCMModel() {
+		return bcmModelEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBCMModel_Units() {
+		return (EReference)bcmModelEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBCMModel_Activities() {
+		return (EReference)bcmModelEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBCMModel_Multiclusters() {
+		return (EReference)bcmModelEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBCMModel_GlobalThreats() {
+		return (EReference)bcmModelEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBCMModel_Domains() {
+		return (EReference)bcmModelEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBCMModel_Recoveries() {
+		return (EReference)bcmModelEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBCMModel_RiskCategories() {
+		return (EReference)bcmModelEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBCMModel_ResourceTypes() {
+		return (EReference)bcmModelEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBCMModel_ThreatLogCategories() {
+		return (EReference)bcmModelEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBCMModel_AutoBC() {
+		return (EAttribute)bcmModelEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getUnit() {
+		return unitEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getUnit_Activities() {
+		return (EReference)unitEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getUnit_MemberOfLogicalGroup() {
+		return (EReference)unitEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getUnit_IncommingDependencies() {
+		return (EReference)unitEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getLogicalGroup() {
+		return logicalGroupEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getLogicalGroup_Members() {
+		return (EReference)logicalGroupEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getAND() {
+		return andEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOR() {
+		return orEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOR_SwitchOverTime() {
+		return (EAttribute)orEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getResource() {
+		return resourceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getResource_Failures() {
+		return (EReference)resourceEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getResource_Multiplicity() {
+		return (EAttribute)resourceEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getResource_Critically() {
+		return (EAttribute)resourceEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getResource_NumberOfUsers() {
+		return (EAttribute)resourceEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getResource_Dependencies() {
+		return (EReference)resourceEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getResource_EfficiencyImpact() {
+		return (EAttribute)resourceEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getResource_IsMarked() {
+		return (EAttribute)resourceEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getResource_ReplacementTime() {
+		return (EAttribute)resourceEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getResource_BusinessImpactTable() {
+		return (EReference)resourceEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getResource_MergedImpactTable() {
+		return (EReference)resourceEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getResource_OverallSeverity() {
+		return (EAttribute)resourceEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getResource_Cost() {
+		return (EAttribute)resourceEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getResource_ContextModelURI() {
+		return (EAttribute)resourceEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getResource_ResourceType() {
+		return (EReference)resourceEClass.getEStructuralFeatures().get(13);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getBusinessProcess() {
+		return businessProcessEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBusinessProcess_Resources() {
+		return (EReference)businessProcessEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getThreat() {
+		return threatEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSporadicThreat() {
+		return sporadicThreatEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSporadicThreat_OccuranceLikelihood() {
+		return (EAttribute)sporadicThreatEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPeriodicThreat() {
+		return periodicThreatEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPeriodicThreat_Period() {
+		return (EAttribute)periodicThreatEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDependency() {
+		return dependencyEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDependency_On() {
+		return (EReference)dependencyEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDependency_From() {
+		return (EReference)dependencyEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getCause() {
+		return causeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCause_Threat() {
+		return (EReference)causeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCause_ImpactDelayDistribution() {
+		return (EAttribute)causeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCause_ImpactLikelihood() {
+		return (EAttribute)causeEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCause_ImpactDelay() {
+		return (EAttribute)causeEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getRecovery() {
+		return recoveryEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getRecovery_Requires() {
+		return (EReference)recoveryEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRecovery_Cost() {
+		return (EAttribute)recoveryEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRecovery_RecoveryTimeMin() {
+		return (EAttribute)recoveryEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRecovery_RecoveryTimeMax() {
+		return (EAttribute)recoveryEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRecovery_Documentation() {
+		return (EAttribute)recoveryEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRecovery_SuccessLiklihood() {
+		return (EAttribute)recoveryEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getRecovery_Slas() {
+		return (EReference)recoveryEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getFailureEffect() {
+		return failureEffectEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFailureEffect_MultiplicityDecrement() {
+		return (EAttribute)failureEffectEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getFailureEffect_CausedBy() {
+		return (EReference)failureEffectEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getFailureEffect_Recovery() {
+		return (EReference)failureEffectEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFailureEffect_ImpactLevel() {
+		return (EAttribute)failureEffectEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFailureEffect_ObsolescenceFailure() {
+		return (EAttribute)failureEffectEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getFailureEffect_Category() {
+		return (EReference)failureEffectEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getNameable() {
+		return nameableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getNameable_Name() {
+		return (EAttribute)nameableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getNameable_Description() {
+		return (EAttribute)nameableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSingleTaskResource() {
+		return singleTaskResourceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getLogicalGroupMemberLink() {
+		return logicalGroupMemberLinkEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getLogicalGroupMemberLink_From() {
+		return (EReference)logicalGroupMemberLinkEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getLogicalGroupMemberLink_To() {
+		return (EReference)logicalGroupMemberLinkEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getBusinessProcessOnUnitLink() {
+		return businessProcessOnUnitLinkEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBusinessProcessOnUnitLink_From() {
+		return (EReference)businessProcessOnUnitLinkEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBusinessProcessOnUnitLink_To() {
+		return (EReference)businessProcessOnUnitLinkEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getMultiCluster() {
+		return multiClusterEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getMultiCluster_Multiplicity() {
+		return (EAttribute)multiClusterEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getMultiCluster_Units() {
+		return (EReference)multiClusterEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDomain() {
+		return domainEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDomain_Items() {
+		return (EReference)domainEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDerivedMetricsSetable() {
+		return derivedMetricsSetableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDerivedMetricsSetable_Availability() {
+		return (EAttribute)derivedMetricsSetableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDerivedMetricsSetable_RTO_QEC() {
+		return (EAttribute)derivedMetricsSetableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDerivedMetricsSetable_RPO() {
+		return (EAttribute)derivedMetricsSetableEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDerivedMetricsSetable_RTONormalPeriod() {
+		return (EAttribute)derivedMetricsSetableEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDerivedMetricsSetable_MTO() {
+		return (EAttribute)derivedMetricsSetableEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDerivedMetricsSetable_MTPD() {
+		return (EAttribute)derivedMetricsSetableEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDerivedMetrics() {
+		return derivedMetricsEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDerivedMetrics_ComputedAvailability() {
+		return (EAttribute)derivedMetricsEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDerivedMetrics_RTO_Derived_QEC() {
+		return (EAttribute)derivedMetricsEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDerivedMetrics_RPODerived() {
+		return (EAttribute)derivedMetricsEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDerivedMetrics_RTODerivedNormalPeriod() {
+		return (EAttribute)derivedMetricsEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDerivedMetrics_Weight() {
+		return (EAttribute)derivedMetricsEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDerivedMetrics_Deps() {
+		return (EAttribute)derivedMetricsEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSupportResource() {
+		return supportResourceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSupportResource_Supports() {
+		return (EReference)supportResourceEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSupportResourceToResourceLink() {
+		return supportResourceToResourceLinkEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSupportResourceToResourceLink_From() {
+		return (EReference)supportResourceToResourceLinkEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSupportResourceToResourceLink_To() {
+		return (EReference)supportResourceToResourceLinkEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getUUID() {
+		return uuidEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getUUID_Uuid() {
+		return (EAttribute)uuidEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSLA() {
+		return slaEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSLA_Provider() {
+		return (EAttribute)slaEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSLA_PriceIncentive() {
+		return (EAttribute)slaEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSLA_PricePerYear() {
+		return (EAttribute)slaEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSLA_PriceIncident() {
+		return (EAttribute)slaEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSLA_TimeMin() {
+		return (EAttribute)slaEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSLA_TimeMax() {
+		return (EAttribute)slaEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSLA_Rank() {
+		return (EAttribute)slaEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSLA_Recovery() {
+		return (EReference)slaEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSLA_Selected() {
+		return (EAttribute)slaEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getBusinessImpactTableRow() {
+		return businessImpactTableRowEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBusinessImpactTableRow_Time() {
+		return (EAttribute)businessImpactTableRowEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBusinessImpactTableRow_Financial() {
+		return (EAttribute)businessImpactTableRowEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBusinessImpactTableRow_Legal() {
+		return (EAttribute)businessImpactTableRowEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBusinessImpactTableRow_External() {
+		return (EAttribute)businessImpactTableRowEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBusinessImpactTableRow_Severity() {
+		return (EAttribute)businessImpactTableRowEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBusinessImpactTableRow_Owner() {
+		return (EAttribute)businessImpactTableRowEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBusinessImpactTableRow_OverallSeverity() {
+		return (EAttribute)businessImpactTableRowEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getRiskCategory() {
+		return riskCategoryEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getRiskCategory_SubCategories() {
+		return (EReference)riskCategoryEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getRiskCategory_ParentCategory() {
+		return (EReference)riskCategoryEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getRiskCategory_HasRisks() {
+		return (EReference)riskCategoryEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getResourceType() {
+		return resourceTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getResourceType_LinkToRiskCatetories() {
+		return (EReference)resourceTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getThreatLogCategory() {
+		return threatLogCategoryEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getThreatLogCategory_HasRisks() {
+		return (EReference)threatLogCategoryEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public GenericbcmFactory getGenericbcmFactory() {
+		return (GenericbcmFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		bcmModelEClass = createEClass(BCM_MODEL);
+		createEReference(bcmModelEClass, BCM_MODEL__UNITS);
+		createEReference(bcmModelEClass, BCM_MODEL__ACTIVITIES);
+		createEReference(bcmModelEClass, BCM_MODEL__MULTICLUSTERS);
+		createEReference(bcmModelEClass, BCM_MODEL__GLOBAL_THREATS);
+		createEReference(bcmModelEClass, BCM_MODEL__DOMAINS);
+		createEReference(bcmModelEClass, BCM_MODEL__RECOVERIES);
+		createEReference(bcmModelEClass, BCM_MODEL__RISK_CATEGORIES);
+		createEReference(bcmModelEClass, BCM_MODEL__RESOURCE_TYPES);
+		createEReference(bcmModelEClass, BCM_MODEL__THREAT_LOG_CATEGORIES);
+		createEAttribute(bcmModelEClass, BCM_MODEL__AUTO_BC);
+
+		unitEClass = createEClass(UNIT);
+		createEReference(unitEClass, UNIT__ACTIVITIES);
+		createEReference(unitEClass, UNIT__MEMBER_OF_LOGICAL_GROUP);
+		createEReference(unitEClass, UNIT__INCOMMING_DEPENDENCIES);
+
+		logicalGroupEClass = createEClass(LOGICAL_GROUP);
+		createEReference(logicalGroupEClass, LOGICAL_GROUP__MEMBERS);
+
+		andEClass = createEClass(AND);
+
+		orEClass = createEClass(OR);
+		createEAttribute(orEClass, OR__SWITCH_OVER_TIME);
+
+		resourceEClass = createEClass(RESOURCE);
+		createEReference(resourceEClass, RESOURCE__FAILURES);
+		createEAttribute(resourceEClass, RESOURCE__MULTIPLICITY);
+		createEAttribute(resourceEClass, RESOURCE__CRITICALLY);
+		createEAttribute(resourceEClass, RESOURCE__NUMBER_OF_USERS);
+		createEReference(resourceEClass, RESOURCE__DEPENDENCIES);
+		createEAttribute(resourceEClass, RESOURCE__EFFICIENCY_IMPACT);
+		createEAttribute(resourceEClass, RESOURCE__IS_MARKED);
+		createEAttribute(resourceEClass, RESOURCE__REPLACEMENT_TIME);
+		createEReference(resourceEClass, RESOURCE__BUSINESS_IMPACT_TABLE);
+		createEReference(resourceEClass, RESOURCE__MERGED_IMPACT_TABLE);
+		createEAttribute(resourceEClass, RESOURCE__OVERALL_SEVERITY);
+		createEAttribute(resourceEClass, RESOURCE__COST);
+		createEAttribute(resourceEClass, RESOURCE__CONTEXT_MODEL_URI);
+		createEReference(resourceEClass, RESOURCE__RESOURCE_TYPE);
+
+		businessProcessEClass = createEClass(BUSINESS_PROCESS);
+		createEReference(businessProcessEClass, BUSINESS_PROCESS__RESOURCES);
+
+		threatEClass = createEClass(THREAT);
+
+		sporadicThreatEClass = createEClass(SPORADIC_THREAT);
+		createEAttribute(sporadicThreatEClass, SPORADIC_THREAT__OCCURANCE_LIKELIHOOD);
+
+		periodicThreatEClass = createEClass(PERIODIC_THREAT);
+		createEAttribute(periodicThreatEClass, PERIODIC_THREAT__PERIOD);
+
+		dependencyEClass = createEClass(DEPENDENCY);
+		createEReference(dependencyEClass, DEPENDENCY__ON);
+		createEReference(dependencyEClass, DEPENDENCY__FROM);
+
+		causeEClass = createEClass(CAUSE);
+		createEReference(causeEClass, CAUSE__THREAT);
+		createEAttribute(causeEClass, CAUSE__IMPACT_DELAY_DISTRIBUTION);
+		createEAttribute(causeEClass, CAUSE__IMPACT_LIKELIHOOD);
+		createEAttribute(causeEClass, CAUSE__IMPACT_DELAY);
+
+		recoveryEClass = createEClass(RECOVERY);
+		createEReference(recoveryEClass, RECOVERY__REQUIRES);
+		createEAttribute(recoveryEClass, RECOVERY__COST);
+		createEAttribute(recoveryEClass, RECOVERY__RECOVERY_TIME_MIN);
+		createEAttribute(recoveryEClass, RECOVERY__RECOVERY_TIME_MAX);
+		createEAttribute(recoveryEClass, RECOVERY__DOCUMENTATION);
+		createEAttribute(recoveryEClass, RECOVERY__SUCCESS_LIKLIHOOD);
+		createEReference(recoveryEClass, RECOVERY__SLAS);
+
+		failureEffectEClass = createEClass(FAILURE_EFFECT);
+		createEAttribute(failureEffectEClass, FAILURE_EFFECT__MULTIPLICITY_DECREMENT);
+		createEReference(failureEffectEClass, FAILURE_EFFECT__CAUSED_BY);
+		createEReference(failureEffectEClass, FAILURE_EFFECT__RECOVERY);
+		createEAttribute(failureEffectEClass, FAILURE_EFFECT__IMPACT_LEVEL);
+		createEAttribute(failureEffectEClass, FAILURE_EFFECT__OBSOLESCENCE_FAILURE);
+		createEReference(failureEffectEClass, FAILURE_EFFECT__CATEGORY);
+
+		nameableEClass = createEClass(NAMEABLE);
+		createEAttribute(nameableEClass, NAMEABLE__NAME);
+		createEAttribute(nameableEClass, NAMEABLE__DESCRIPTION);
+
+		singleTaskResourceEClass = createEClass(SINGLE_TASK_RESOURCE);
+
+		logicalGroupMemberLinkEClass = createEClass(LOGICAL_GROUP_MEMBER_LINK);
+		createEReference(logicalGroupMemberLinkEClass, LOGICAL_GROUP_MEMBER_LINK__FROM);
+		createEReference(logicalGroupMemberLinkEClass, LOGICAL_GROUP_MEMBER_LINK__TO);
+
+		businessProcessOnUnitLinkEClass = createEClass(BUSINESS_PROCESS_ON_UNIT_LINK);
+		createEReference(businessProcessOnUnitLinkEClass, BUSINESS_PROCESS_ON_UNIT_LINK__FROM);
+		createEReference(businessProcessOnUnitLinkEClass, BUSINESS_PROCESS_ON_UNIT_LINK__TO);
+
+		multiClusterEClass = createEClass(MULTI_CLUSTER);
+		createEAttribute(multiClusterEClass, MULTI_CLUSTER__MULTIPLICITY);
+		createEReference(multiClusterEClass, MULTI_CLUSTER__UNITS);
+
+		domainEClass = createEClass(DOMAIN);
+		createEReference(domainEClass, DOMAIN__ITEMS);
+
+		derivedMetricsSetableEClass = createEClass(DERIVED_METRICS_SETABLE);
+		createEAttribute(derivedMetricsSetableEClass, DERIVED_METRICS_SETABLE__AVAILABILITY);
+		createEAttribute(derivedMetricsSetableEClass, DERIVED_METRICS_SETABLE__RTO_QEC);
+		createEAttribute(derivedMetricsSetableEClass, DERIVED_METRICS_SETABLE__RPO);
+		createEAttribute(derivedMetricsSetableEClass, DERIVED_METRICS_SETABLE__RTO_NORMAL_PERIOD);
+		createEAttribute(derivedMetricsSetableEClass, DERIVED_METRICS_SETABLE__MTO);
+		createEAttribute(derivedMetricsSetableEClass, DERIVED_METRICS_SETABLE__MTPD);
+
+		derivedMetricsEClass = createEClass(DERIVED_METRICS);
+		createEAttribute(derivedMetricsEClass, DERIVED_METRICS__COMPUTED_AVAILABILITY);
+		createEAttribute(derivedMetricsEClass, DERIVED_METRICS__RTO_DERIVED_QEC);
+		createEAttribute(derivedMetricsEClass, DERIVED_METRICS__RPO_DERIVED);
+		createEAttribute(derivedMetricsEClass, DERIVED_METRICS__RTO_DERIVED_NORMAL_PERIOD);
+		createEAttribute(derivedMetricsEClass, DERIVED_METRICS__WEIGHT);
+		createEAttribute(derivedMetricsEClass, DERIVED_METRICS__DEPS);
+
+		supportResourceEClass = createEClass(SUPPORT_RESOURCE);
+		createEReference(supportResourceEClass, SUPPORT_RESOURCE__SUPPORTS);
+
+		supportResourceToResourceLinkEClass = createEClass(SUPPORT_RESOURCE_TO_RESOURCE_LINK);
+		createEReference(supportResourceToResourceLinkEClass, SUPPORT_RESOURCE_TO_RESOURCE_LINK__FROM);
+		createEReference(supportResourceToResourceLinkEClass, SUPPORT_RESOURCE_TO_RESOURCE_LINK__TO);
+
+		uuidEClass = createEClass(UUID);
+		createEAttribute(uuidEClass, UUID__UUID);
+
+		slaEClass = createEClass(SLA);
+		createEAttribute(slaEClass, SLA__PROVIDER);
+		createEAttribute(slaEClass, SLA__PRICE_INCENTIVE);
+		createEAttribute(slaEClass, SLA__PRICE_PER_YEAR);
+		createEAttribute(slaEClass, SLA__PRICE_INCIDENT);
+		createEAttribute(slaEClass, SLA__TIME_MIN);
+		createEAttribute(slaEClass, SLA__TIME_MAX);
+		createEAttribute(slaEClass, SLA__RANK);
+		createEReference(slaEClass, SLA__RECOVERY);
+		createEAttribute(slaEClass, SLA__SELECTED);
+
+		businessImpactTableRowEClass = createEClass(BUSINESS_IMPACT_TABLE_ROW);
+		createEAttribute(businessImpactTableRowEClass, BUSINESS_IMPACT_TABLE_ROW__TIME);
+		createEAttribute(businessImpactTableRowEClass, BUSINESS_IMPACT_TABLE_ROW__FINANCIAL);
+		createEAttribute(businessImpactTableRowEClass, BUSINESS_IMPACT_TABLE_ROW__LEGAL);
+		createEAttribute(businessImpactTableRowEClass, BUSINESS_IMPACT_TABLE_ROW__EXTERNAL);
+		createEAttribute(businessImpactTableRowEClass, BUSINESS_IMPACT_TABLE_ROW__SEVERITY);
+		createEAttribute(businessImpactTableRowEClass, BUSINESS_IMPACT_TABLE_ROW__OWNER);
+		createEAttribute(businessImpactTableRowEClass, BUSINESS_IMPACT_TABLE_ROW__OVERALL_SEVERITY);
+
+		riskCategoryEClass = createEClass(RISK_CATEGORY);
+		createEReference(riskCategoryEClass, RISK_CATEGORY__SUB_CATEGORIES);
+		createEReference(riskCategoryEClass, RISK_CATEGORY__PARENT_CATEGORY);
+		createEReference(riskCategoryEClass, RISK_CATEGORY__HAS_RISKS);
+
+		resourceTypeEClass = createEClass(RESOURCE_TYPE);
+		createEReference(resourceTypeEClass, RESOURCE_TYPE__LINK_TO_RISK_CATETORIES);
+
+		threatLogCategoryEClass = createEClass(THREAT_LOG_CATEGORY);
+		createEReference(threatLogCategoryEClass, THREAT_LOG_CATEGORY__HAS_RISKS);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		bcmModelEClass.getESuperTypes().add(this.getNameable());
+		unitEClass.getESuperTypes().add(this.getNameable());
+		unitEClass.getESuperTypes().add(this.getDerivedMetrics());
+		logicalGroupEClass.getESuperTypes().add(this.getUnit());
+		andEClass.getESuperTypes().add(this.getLogicalGroup());
+		orEClass.getESuperTypes().add(this.getLogicalGroup());
+		resourceEClass.getESuperTypes().add(this.getUnit());
+		resourceEClass.getESuperTypes().add(this.getDerivedMetricsSetable());
+		businessProcessEClass.getESuperTypes().add(this.getNameable());
+		businessProcessEClass.getESuperTypes().add(this.getDerivedMetricsSetable());
+		threatEClass.getESuperTypes().add(this.getNameable());
+		sporadicThreatEClass.getESuperTypes().add(this.getThreat());
+		periodicThreatEClass.getESuperTypes().add(this.getThreat());
+		dependencyEClass.getESuperTypes().add(this.getThreat());
+		causeEClass.getESuperTypes().add(this.getNameable());
+		recoveryEClass.getESuperTypes().add(this.getNameable());
+		recoveryEClass.getESuperTypes().add(this.getDerivedMetrics());
+		failureEffectEClass.getESuperTypes().add(this.getNameable());
+		nameableEClass.getESuperTypes().add(this.getUUID());
+		singleTaskResourceEClass.getESuperTypes().add(this.getResource());
+		logicalGroupMemberLinkEClass.getESuperTypes().add(this.getNameable());
+		businessProcessOnUnitLinkEClass.getESuperTypes().add(this.getNameable());
+		multiClusterEClass.getESuperTypes().add(this.getNameable());
+		domainEClass.getESuperTypes().add(this.getNameable());
+		derivedMetricsSetableEClass.getESuperTypes().add(this.getDerivedMetrics());
+		supportResourceEClass.getESuperTypes().add(this.getResource());
+		supportResourceToResourceLinkEClass.getESuperTypes().add(this.getNameable());
+		businessImpactTableRowEClass.getESuperTypes().add(this.getNameable());
+		riskCategoryEClass.getESuperTypes().add(this.getNameable());
+		resourceTypeEClass.getESuperTypes().add(this.getNameable());
+		threatLogCategoryEClass.getESuperTypes().add(this.getNameable());
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(bcmModelEClass, BCMModel.class, "BCMModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getBCMModel_Units(), this.getUnit(), null, "units", null, 0, -1, BCMModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBCMModel_Activities(), this.getBusinessProcess(), null, "activities", null, 0, -1, BCMModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBCMModel_Multiclusters(), this.getMultiCluster(), null, "multiclusters", null, 0, -1, BCMModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBCMModel_GlobalThreats(), this.getThreat(), null, "globalThreats", null, 0, -1, BCMModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBCMModel_Domains(), this.getDomain(), null, "domains", null, 0, -1, BCMModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBCMModel_Recoveries(), this.getRecovery(), null, "recoveries", null, 0, -1, BCMModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBCMModel_RiskCategories(), this.getRiskCategory(), null, "riskCategories", null, 0, -1, BCMModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBCMModel_ResourceTypes(), this.getResourceType(), null, "resourceTypes", null, 0, -1, BCMModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBCMModel_ThreatLogCategories(), this.getThreatLogCategory(), null, "ThreatLogCategories", null, 0, -1, BCMModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBCMModel_AutoBC(), ecorePackage.getEBoolean(), "autoBC", "true", 0, 1, BCMModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(unitEClass, Unit.class, "Unit", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getUnit_Activities(), this.getBusinessProcessOnUnitLink(), this.getBusinessProcessOnUnitLink_To(), "activities", null, 0, -1, Unit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getUnit_MemberOfLogicalGroup(), this.getLogicalGroupMemberLink(), this.getLogicalGroupMemberLink_To(), "memberOfLogicalGroup", null, 0, -1, Unit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getUnit_IncommingDependencies(), this.getDependency(), this.getDependency_On(), "incommingDependencies", null, 0, -1, Unit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(logicalGroupEClass, LogicalGroup.class, "LogicalGroup", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getLogicalGroup_Members(), this.getLogicalGroupMemberLink(), null, "members", null, 0, -1, LogicalGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(andEClass, genericbcm.AND.class, "AND", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(orEClass, genericbcm.OR.class, "OR", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getOR_SwitchOverTime(), ecorePackage.getEDouble(), "switchOverTime", null, 0, 1, genericbcm.OR.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(resourceEClass, Resource.class, "Resource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getResource_Failures(), this.getFailureEffect(), null, "failures", null, 0, -1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getResource_Multiplicity(), ecorePackage.getEInt(), "multiplicity", "1", 0, 1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getResource_Critically(), ecorePackage.getEInt(), "critically", null, 0, 1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getResource_NumberOfUsers(), ecorePackage.getEInt(), "numberOfUsers", "-1", 0, 1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getResource_Dependencies(), this.getDependency(), null, "dependencies", null, 0, -1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getResource_EfficiencyImpact(), ecorePackage.getEFloat(), "efficiencyImpact", null, 0, 1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getResource_IsMarked(), ecorePackage.getEBoolean(), "isMarked", "false", 0, 1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getResource_ReplacementTime(), ecorePackage.getEDouble(), "ReplacementTime", null, 0, 1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getResource_BusinessImpactTable(), this.getBusinessImpactTableRow(), null, "businessImpactTable", null, 0, -1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getResource_MergedImpactTable(), this.getBusinessImpactTableRow(), null, "mergedImpactTable", null, 0, -1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getResource_OverallSeverity(), ecorePackage.getEDouble(), "overallSeverity", null, 0, 1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getResource_Cost(), ecorePackage.getEDouble(), "cost", null, 0, 1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getResource_ContextModelURI(), ecorePackage.getEString(), "contextModelURI", null, 0, 1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getResource_ResourceType(), this.getResourceType(), null, "resourceType", null, 0, 1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(businessProcessEClass, BusinessProcess.class, "BusinessProcess", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getBusinessProcess_Resources(), this.getBusinessProcessOnUnitLink(), this.getBusinessProcessOnUnitLink_From(), "resources", null, 0, -1, BusinessProcess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(threatEClass, Threat.class, "Threat", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(sporadicThreatEClass, SporadicThreat.class, "SporadicThreat", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getSporadicThreat_OccuranceLikelihood(), ecorePackage.getEDouble(), "occuranceLikelihood", null, 0, 1, SporadicThreat.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(periodicThreatEClass, PeriodicThreat.class, "PeriodicThreat", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getPeriodicThreat_Period(), ecorePackage.getEDouble(), "period", null, 0, 1, PeriodicThreat.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dependencyEClass, Dependency.class, "Dependency", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDependency_On(), this.getUnit(), this.getUnit_IncommingDependencies(), "on", null, 1, 1, Dependency.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDependency_From(), this.getResource(), null, "from", null, 1, 1, Dependency.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(causeEClass, Cause.class, "Cause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getCause_Threat(), this.getThreat(), null, "threat", null, 1, 1, Cause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getCause_ImpactDelayDistribution(), ecorePackage.getEDouble(), "impactDelayDistribution", null, 0, -1, Cause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getCause_ImpactLikelihood(), ecorePackage.getEDouble(), "impactLikelihood", "1.0", 0, 1, Cause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getCause_ImpactDelay(), ecorePackage.getEDouble(), "impactDelay", null, 0, 1, Cause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(recoveryEClass, Recovery.class, "Recovery", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getRecovery_Requires(), this.getUnit(), null, "requires", null, 0, -1, Recovery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getRecovery_Cost(), ecorePackage.getEDouble(), "cost", null, 0, 1, Recovery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getRecovery_RecoveryTimeMin(), ecorePackage.getEDouble(), "recoveryTimeMin", null, 0, 1, Recovery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getRecovery_RecoveryTimeMax(), ecorePackage.getEDouble(), "recoveryTimeMax", null, 0, 1, Recovery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getRecovery_Documentation(), ecorePackage.getEResource(), "documentation", null, 0, -1, Recovery.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getRecovery_SuccessLiklihood(), ecorePackage.getEDouble(), "successLiklihood", "-1", 0, 1, Recovery.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEReference(getRecovery_Slas(), this.getSLA(), this.getSLA_Recovery(), "slas", null, 0, -1, Recovery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(failureEffectEClass, FailureEffect.class, "FailureEffect", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getFailureEffect_MultiplicityDecrement(), ecorePackage.getEInt(), "multiplicityDecrement", "1", 0, 1, FailureEffect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getFailureEffect_CausedBy(), this.getCause(), null, "causedBy", null, 0, -1, FailureEffect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getFailureEffect_Recovery(), this.getRecovery(), null, "recovery", null, 0, 1, FailureEffect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getFailureEffect_ImpactLevel(), ecorePackage.getEString(), "impactLevel", null, 0, 1, FailureEffect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getFailureEffect_ObsolescenceFailure(), ecorePackage.getEBoolean(), "obsolescenceFailure", "false", 0, 1, FailureEffect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getFailureEffect_Category(), this.getRiskCategory(), null, "category", null, 0, 1, FailureEffect.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(nameableEClass, Nameable.class, "Nameable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getNameable_Name(), ecorePackage.getEString(), "name", null, 0, 1, Nameable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getNameable_Description(), ecorePackage.getEString(), "description", null, 0, 1, Nameable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(singleTaskResourceEClass, SingleTaskResource.class, "SingleTaskResource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(logicalGroupMemberLinkEClass, LogicalGroupMemberLink.class, "LogicalGroupMemberLink", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getLogicalGroupMemberLink_From(), this.getLogicalGroup(), null, "from", null, 1, 1, LogicalGroupMemberLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getLogicalGroupMemberLink_To(), this.getUnit(), this.getUnit_MemberOfLogicalGroup(), "to", null, 1, 1, LogicalGroupMemberLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(businessProcessOnUnitLinkEClass, BusinessProcessOnUnitLink.class, "BusinessProcessOnUnitLink", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getBusinessProcessOnUnitLink_From(), this.getBusinessProcess(), this.getBusinessProcess_Resources(), "from", null, 1, 1, BusinessProcessOnUnitLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBusinessProcessOnUnitLink_To(), this.getUnit(), this.getUnit_Activities(), "to", null, 1, 1, BusinessProcessOnUnitLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(multiClusterEClass, MultiCluster.class, "MultiCluster", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getMultiCluster_Multiplicity(), ecorePackage.getEInt(), "multiplicity", null, 1, 1, MultiCluster.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getMultiCluster_Units(), this.getUnit(), null, "units", null, 0, -1, MultiCluster.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(domainEClass, Domain.class, "Domain", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDomain_Items(), this.getUnit(), null, "items", null, 0, -1, Domain.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(derivedMetricsSetableEClass, DerivedMetricsSetable.class, "DerivedMetricsSetable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getDerivedMetricsSetable_Availability(), ecorePackage.getEDouble(), "Availability", "1", 0, 1, DerivedMetricsSetable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDerivedMetricsSetable_RTO_QEC(), ecorePackage.getEDouble(), "RTO_QEC", "-1", 0, 1, DerivedMetricsSetable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDerivedMetricsSetable_RPO(), ecorePackage.getEDouble(), "RPO", "-1", 0, 1, DerivedMetricsSetable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDerivedMetricsSetable_RTONormalPeriod(), ecorePackage.getEDouble(), "RTONormalPeriod", "-1", 0, 1, DerivedMetricsSetable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDerivedMetricsSetable_MTO(), ecorePackage.getEDouble(), "MTO", "-1", 0, 1, DerivedMetricsSetable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDerivedMetricsSetable_MTPD(), ecorePackage.getEDouble(), "MTPD", "-1", 0, 1, DerivedMetricsSetable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(derivedMetricsEClass, DerivedMetrics.class, "DerivedMetrics", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getDerivedMetrics_ComputedAvailability(), ecorePackage.getEDouble(), "ComputedAvailability", "1", 0, 1, DerivedMetrics.class, IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDerivedMetrics_RTO_Derived_QEC(), ecorePackage.getEDouble(), "RTO_Derived_QEC", "-1", 0, 1, DerivedMetrics.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDerivedMetrics_RPODerived(), ecorePackage.getEDouble(), "RPODerived", "-1", 0, 1, DerivedMetrics.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDerivedMetrics_RTODerivedNormalPeriod(), ecorePackage.getEDouble(), "RTODerivedNormalPeriod", "-1", 0, 1, DerivedMetrics.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDerivedMetrics_Weight(), ecorePackage.getEInt(), "Weight", null, 0, 1, DerivedMetrics.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDerivedMetrics_Deps(), ecorePackage.getEInt(), "Deps", null, 0, 1, DerivedMetrics.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(supportResourceEClass, SupportResource.class, "SupportResource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getSupportResource_Supports(), this.getSupportResourceToResourceLink(), null, "supports", null, 0, -1, SupportResource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(supportResourceToResourceLinkEClass, SupportResourceToResourceLink.class, "SupportResourceToResourceLink", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getSupportResourceToResourceLink_From(), this.getSupportResource(), null, "from", null, 1, 1, SupportResourceToResourceLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getSupportResourceToResourceLink_To(), this.getResource(), null, "to", null, 1, 1, SupportResourceToResourceLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(uuidEClass, genericbcm.UUID.class, "UUID", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getUUID_Uuid(), ecorePackage.getEString(), "uuid", null, 0, 1, genericbcm.UUID.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(slaEClass, genericbcm.SLA.class, "SLA", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getSLA_Provider(), ecorePackage.getEString(), "provider", null, 0, 1, genericbcm.SLA.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSLA_PriceIncentive(), ecorePackage.getEDouble(), "priceIncentive", null, 0, 1, genericbcm.SLA.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSLA_PricePerYear(), ecorePackage.getEDouble(), "pricePerYear", null, 0, 1, genericbcm.SLA.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSLA_PriceIncident(), ecorePackage.getEDouble(), "priceIncident", null, 0, 1, genericbcm.SLA.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSLA_TimeMin(), ecorePackage.getEDouble(), "timeMin", null, 0, 1, genericbcm.SLA.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSLA_TimeMax(), ecorePackage.getEDouble(), "timeMax", null, 0, 1, genericbcm.SLA.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSLA_Rank(), ecorePackage.getEDouble(), "rank", null, 0, 1, genericbcm.SLA.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getSLA_Recovery(), this.getRecovery(), this.getRecovery_Slas(), "recovery", null, 0, 1, genericbcm.SLA.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSLA_Selected(), ecorePackage.getEBoolean(), "selected", "false", 0, 1, genericbcm.SLA.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(businessImpactTableRowEClass, BusinessImpactTableRow.class, "BusinessImpactTableRow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getBusinessImpactTableRow_Time(), ecorePackage.getEDouble(), "time", null, 0, 1, BusinessImpactTableRow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBusinessImpactTableRow_Financial(), ecorePackage.getEDouble(), "financial", null, 0, 1, BusinessImpactTableRow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBusinessImpactTableRow_Legal(), ecorePackage.getEDouble(), "legal", null, 0, 1, BusinessImpactTableRow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBusinessImpactTableRow_External(), ecorePackage.getEDouble(), "external", null, 0, 1, BusinessImpactTableRow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBusinessImpactTableRow_Severity(), ecorePackage.getEDouble(), "severity", null, 0, 1, BusinessImpactTableRow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBusinessImpactTableRow_Owner(), ecorePackage.getEString(), "owner", null, 0, 1, BusinessImpactTableRow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBusinessImpactTableRow_OverallSeverity(), ecorePackage.getEDouble(), "overallSeverity", null, 0, 1, BusinessImpactTableRow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(riskCategoryEClass, RiskCategory.class, "RiskCategory", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getRiskCategory_SubCategories(), this.getRiskCategory(), this.getRiskCategory_ParentCategory(), "subCategories", null, 0, -1, RiskCategory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getRiskCategory_ParentCategory(), this.getRiskCategory(), this.getRiskCategory_SubCategories(), "parentCategory", null, 0, 1, RiskCategory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getRiskCategory_HasRisks(), this.getFailureEffect(), null, "hasRisks", null, 0, -1, RiskCategory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(resourceTypeEClass, ResourceType.class, "ResourceType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getResourceType_LinkToRiskCatetories(), this.getRiskCategory(), null, "linkToRiskCatetories", null, 0, -1, ResourceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(threatLogCategoryEClass, ThreatLogCategory.class, "ThreatLogCategory", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getThreatLogCategory_HasRisks(), this.getFailureEffect(), null, "hasRisks", null, 0, -1, ThreatLogCategory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //GenericbcmPackageImpl