/**
 */
package ua.ansymo.hintco.impl;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EcorePackage;

import org.eclipse.emf.ecore.impl.EPackageImpl;

import ua.ansymo.hintco.Adaptation;
import ua.ansymo.hintco.Alternative;
import ua.ansymo.hintco.ApproximationAdaptation;
import ua.ansymo.hintco.CosimUnitDeclaration;
import ua.ansymo.hintco.CosimUnitInstance;
import ua.ansymo.hintco.DecompositionPortAdaptation;
import ua.ansymo.hintco.DecompositionUnitAdaptation;
import ua.ansymo.hintco.ExtrapolationAdaptation;
import ua.ansymo.hintco.HierarchicalCosimUnit;
import ua.ansymo.hintco.HierarchicalUnitPort;
import ua.ansymo.hintco.HintConfiguration;
import ua.ansymo.hintco.HintcoFactory;
import ua.ansymo.hintco.HintcoPackage;
import ua.ansymo.hintco.IDed;
import ua.ansymo.hintco.InputPortInstance;
import ua.ansymo.hintco.InterpolationAdaptation;
import ua.ansymo.hintco.MultiRateAdaptation;
import ua.ansymo.hintco.OutputPortInstance;
import ua.ansymo.hintco.PortAdaptation;
import ua.ansymo.hintco.PortInstance;
import ua.ansymo.hintco.PowerBondAdaptation;
import ua.ansymo.hintco.PrecendenceNode;
import ua.ansymo.hintco.RollbackInterpolationAdaptation;
import ua.ansymo.hintco.RootCandidateScenario;
import ua.ansymo.hintco.Scenario;
import ua.ansymo.hintco.UnitAdaptation;
import ua.ansymo.hintco.UnitInstance;
import ua.ansymo.hintco.VariantDiagram;
import ua.ansymo.hintco.XorPortAdaptation;
import ua.ansymo.hintco.XorUnitAdaptation;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Package</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class HintcoPackageImpl extends EPackageImpl implements HintcoPackage {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass iDedEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass hintConfigurationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass variantDiagramEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass precendenceNodeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass rootCandidateScenarioEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass scenarioEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass hierarchicalCosimUnitEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass cosimUnitDeclarationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass unitInstanceEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass cosimUnitInstanceEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass portInstanceEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass hierarchicalUnitPortEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass inputPortInstanceEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass outputPortInstanceEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass alternativeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass adaptationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass portAdaptationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass decompositionPortAdaptationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass unitAdaptationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass decompositionUnitAdaptationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass xorUnitAdaptationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass xorPortAdaptationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass approximationAdaptationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass multiRateAdaptationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass powerBondAdaptationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass extrapolationAdaptationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass rollbackInterpolationAdaptationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass interpolationAdaptationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EDataType intEDataType = 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 ua.ansymo.hintco.HintcoPackage#eNS_URI
	 * @see #init()
	 * @generated
	 */
	private HintcoPackageImpl() {
		super(eNS_URI, HintcoFactory.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 HintcoPackage#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 HintcoPackage init() {
		if (isInited) return (HintcoPackage)EPackage.Registry.INSTANCE.getEPackage(HintcoPackage.eNS_URI);

		// Obtain or create and register package
		Object registeredHintcoPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
		HintcoPackageImpl theHintcoPackage = registeredHintcoPackage instanceof HintcoPackageImpl ? (HintcoPackageImpl)registeredHintcoPackage : new HintcoPackageImpl();

		isInited = true;

		// Initialize simple dependencies
		EcorePackage.eINSTANCE.eClass();

		// Create package meta-data objects
		theHintcoPackage.createPackageContents();

		// Initialize created meta-data
		theHintcoPackage.initializePackageContents();

		// Mark meta-data to indicate it can't be changed
		theHintcoPackage.freeze();

		// Update the registry and return the package
		EPackage.Registry.INSTANCE.put(HintcoPackage.eNS_URI, theHintcoPackage);
		return theHintcoPackage;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getIDed() {
		return iDedEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getIDed_Identifier() {
		return (EAttribute)iDedEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getHintConfiguration() {
		return hintConfigurationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHintConfiguration_Candidates() {
		return (EReference)hintConfigurationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHintConfiguration_CsuDeclarations() {
		return (EReference)hintConfigurationEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHintConfiguration_Root() {
		return (EReference)hintConfigurationEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getHintConfiguration_Nodes() {
		return (EReference)hintConfigurationEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getVariantDiagram() {
		return variantDiagramEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getVariantDiagram_Children() {
		return (EReference)variantDiagramEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getVariantDiagram_Alternative() {
		return (EReference)variantDiagramEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getVariantDiagram_Name() {
		return (EAttribute)variantDiagramEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPrecendenceNode() {
		return precendenceNodeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPrecendenceNode_Precedes() {
		return (EReference)precendenceNodeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPrecendenceNode_Succeeds() {
		return (EReference)precendenceNodeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPrecendenceNode_Before() {
		return (EReference)precendenceNodeEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPrecendenceNode_After() {
		return (EReference)precendenceNodeEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getRootCandidateScenario() {
		return rootCandidateScenarioEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getRootCandidateScenario_Name() {
		return (EAttribute)rootCandidateScenarioEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getRootCandidateScenario_StopTime() {
		return (EAttribute)rootCandidateScenarioEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getRootCandidateScenario_StepSize() {
		return (EAttribute)rootCandidateScenarioEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getRootCandidateScenario_OutputStepSize() {
		return (EAttribute)rootCandidateScenarioEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getRootCandidateScenario_MaxInitIterations() {
		return (EAttribute)rootCandidateScenarioEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getScenario() {
		return scenarioEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getScenario_Cosimunits() {
		return (EReference)scenarioEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getHierarchicalCosimUnit() {
		return hierarchicalCosimUnitEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getHierarchicalCosimUnit__Valid() {
		return hierarchicalCosimUnitEClass.getEOperations().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getCosimUnitDeclaration() {
		return cosimUnitDeclarationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCosimUnitDeclaration_Path() {
		return (EAttribute)cosimUnitDeclarationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getCosimUnitDeclaration_Guid() {
		return (EAttribute)cosimUnitDeclarationEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getUnitInstance() {
		return unitInstanceEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getUnitInstance_Scenario() {
		return (EReference)unitInstanceEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getUnitInstance_Adaptation() {
		return (EReference)unitInstanceEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getUnitInstance_Ports() {
		return (EReference)unitInstanceEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getUnitInstance__SelectedAdaptations() {
		return unitInstanceEClass.getEOperations().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getUnitInstance__GetOutputPorts() {
		return unitInstanceEClass.getEOperations().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getUnitInstance__GetInputPorts() {
		return unitInstanceEClass.getEOperations().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getUnitInstance__ToString() {
		return unitInstanceEClass.getEOperations().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getCosimUnitInstance() {
		return cosimUnitInstanceEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getCosimUnitInstance_Declaration() {
		return (EReference)cosimUnitInstanceEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPortInstance() {
		return portInstanceEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPortInstance_Unit() {
		return (EReference)portInstanceEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPortInstance_Adaptation() {
		return (EReference)portInstanceEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getPortInstance__SelectedAdaptations() {
		return portInstanceEClass.getEOperations().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getPortInstance__IsInput() {
		return portInstanceEClass.getEOperations().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getPortInstance__GetsValueFrom__PortInstance() {
		return portInstanceEClass.getEOperations().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getPortInstance__ToString() {
		return portInstanceEClass.getEOperations().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getHierarchicalUnitPort() {
		return hierarchicalUnitPortEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getHierarchicalUnitPort__IsInput() {
		return hierarchicalUnitPortEClass.getEOperations().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getHierarchicalUnitPort__AltIsInput() {
		return hierarchicalUnitPortEClass.getEOperations().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getInputPortInstance() {
		return inputPortInstanceEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getInputPortInstance_InternalValueTo() {
		return (EReference)inputPortInstanceEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getInputPortInstance_ValueFrom() {
		return (EReference)inputPortInstanceEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getInputPortInstance__GetRealValueFrom() {
		return inputPortInstanceEClass.getEOperations().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getInputPortInstance__GetsValueFrom__PortInstance() {
		return inputPortInstanceEClass.getEOperations().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getInputPortInstance__IsInput() {
		return inputPortInstanceEClass.getEOperations().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getOutputPortInstance() {
		return outputPortInstanceEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getOutputPortInstance_ValueTo() {
		return (EReference)outputPortInstanceEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getOutputPortInstance_InternalValueFrom() {
		return (EReference)outputPortInstanceEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getOutputPortInstance__IsInput() {
		return outputPortInstanceEClass.getEOperations().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getAlternative() {
		return alternativeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAlternative_Weight() {
		return (EAttribute)alternativeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getAlternative_Selected() {
		return (EAttribute)alternativeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getAlternative_Implies() {
		return (EReference)alternativeEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getAdaptation() {
		return adaptationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPortAdaptation() {
		return portAdaptationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPortAdaptation_Port() {
		return (EReference)portAdaptationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPortAdaptation_Parent() {
		return (EReference)portAdaptationEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getPortAdaptation__Adapted() {
		return portAdaptationEClass.getEOperations().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDecompositionPortAdaptation() {
		return decompositionPortAdaptationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDecompositionPortAdaptation_Children() {
		return (EReference)decompositionPortAdaptationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDecompositionPortAdaptation_Name() {
		return (EAttribute)decompositionPortAdaptationEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getDecompositionPortAdaptation__SelectedAdaptations() {
		return decompositionPortAdaptationEClass.getEOperations().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getUnitAdaptation() {
		return unitAdaptationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getUnitAdaptation_Unit() {
		return (EReference)unitAdaptationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getUnitAdaptation_Parent() {
		return (EReference)unitAdaptationEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getUnitAdaptation__Adapted() {
		return unitAdaptationEClass.getEOperations().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDecompositionUnitAdaptation() {
		return decompositionUnitAdaptationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDecompositionUnitAdaptation_Children() {
		return (EReference)decompositionUnitAdaptationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDecompositionUnitAdaptation_Name() {
		return (EAttribute)decompositionUnitAdaptationEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getDecompositionUnitAdaptation__SelectedAdaptations() {
		return decompositionUnitAdaptationEClass.getEOperations().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getXorUnitAdaptation() {
		return xorUnitAdaptationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getXorPortAdaptation() {
		return xorPortAdaptationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getApproximationAdaptation() {
		return approximationAdaptationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getApproximationAdaptation_Order() {
		return (EAttribute)approximationAdaptationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getMultiRateAdaptation() {
		return multiRateAdaptationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getMultiRateAdaptation_Rate() {
		return (EAttribute)multiRateAdaptationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getMultiRateAdaptation_Name() {
		return (EAttribute)multiRateAdaptationEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPowerBondAdaptation() {
		return powerBondAdaptationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPowerBondAdaptation_Effort() {
		return (EReference)powerBondAdaptationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPowerBondAdaptation_Flow() {
		return (EReference)powerBondAdaptationEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPowerBondAdaptation_POut() {
		return (EReference)powerBondAdaptationEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPowerBondAdaptation_PIn() {
		return (EReference)powerBondAdaptationEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPowerBondAdaptation_Name() {
		return (EAttribute)powerBondAdaptationEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EOperation getPowerBondAdaptation__GetDual() {
		return powerBondAdaptationEClass.getEOperations().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getExtrapolationAdaptation() {
		return extrapolationAdaptationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getExtrapolationAdaptation_Name() {
		return (EAttribute)extrapolationAdaptationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getRollbackInterpolationAdaptation() {
		return rollbackInterpolationAdaptationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getInterpolationAdaptation() {
		return interpolationAdaptationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getInterpolationAdaptation_Name() {
		return (EAttribute)interpolationAdaptationEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EDataType getInt() {
		return intEDataType;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public HintcoFactory getHintcoFactory() {
		return (HintcoFactory)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
		iDedEClass = createEClass(IDED);
		createEAttribute(iDedEClass, IDED__IDENTIFIER);

		hintConfigurationEClass = createEClass(HINT_CONFIGURATION);
		createEReference(hintConfigurationEClass, HINT_CONFIGURATION__CANDIDATES);
		createEReference(hintConfigurationEClass, HINT_CONFIGURATION__CSU_DECLARATIONS);
		createEReference(hintConfigurationEClass, HINT_CONFIGURATION__ROOT);
		createEReference(hintConfigurationEClass, HINT_CONFIGURATION__NODES);

		variantDiagramEClass = createEClass(VARIANT_DIAGRAM);
		createEReference(variantDiagramEClass, VARIANT_DIAGRAM__CHILDREN);
		createEReference(variantDiagramEClass, VARIANT_DIAGRAM__ALTERNATIVE);
		createEAttribute(variantDiagramEClass, VARIANT_DIAGRAM__NAME);

		precendenceNodeEClass = createEClass(PRECENDENCE_NODE);
		createEReference(precendenceNodeEClass, PRECENDENCE_NODE__PRECEDES);
		createEReference(precendenceNodeEClass, PRECENDENCE_NODE__SUCCEEDS);
		createEReference(precendenceNodeEClass, PRECENDENCE_NODE__BEFORE);
		createEReference(precendenceNodeEClass, PRECENDENCE_NODE__AFTER);

		rootCandidateScenarioEClass = createEClass(ROOT_CANDIDATE_SCENARIO);
		createEAttribute(rootCandidateScenarioEClass, ROOT_CANDIDATE_SCENARIO__NAME);
		createEAttribute(rootCandidateScenarioEClass, ROOT_CANDIDATE_SCENARIO__STOP_TIME);
		createEAttribute(rootCandidateScenarioEClass, ROOT_CANDIDATE_SCENARIO__STEP_SIZE);
		createEAttribute(rootCandidateScenarioEClass, ROOT_CANDIDATE_SCENARIO__OUTPUT_STEP_SIZE);
		createEAttribute(rootCandidateScenarioEClass, ROOT_CANDIDATE_SCENARIO__MAX_INIT_ITERATIONS);

		scenarioEClass = createEClass(SCENARIO);
		createEReference(scenarioEClass, SCENARIO__COSIMUNITS);

		hierarchicalCosimUnitEClass = createEClass(HIERARCHICAL_COSIM_UNIT);
		createEOperation(hierarchicalCosimUnitEClass, HIERARCHICAL_COSIM_UNIT___VALID);

		cosimUnitDeclarationEClass = createEClass(COSIM_UNIT_DECLARATION);
		createEAttribute(cosimUnitDeclarationEClass, COSIM_UNIT_DECLARATION__PATH);
		createEAttribute(cosimUnitDeclarationEClass, COSIM_UNIT_DECLARATION__GUID);

		unitInstanceEClass = createEClass(UNIT_INSTANCE);
		createEReference(unitInstanceEClass, UNIT_INSTANCE__SCENARIO);
		createEReference(unitInstanceEClass, UNIT_INSTANCE__ADAPTATION);
		createEReference(unitInstanceEClass, UNIT_INSTANCE__PORTS);
		createEOperation(unitInstanceEClass, UNIT_INSTANCE___SELECTED_ADAPTATIONS);
		createEOperation(unitInstanceEClass, UNIT_INSTANCE___GET_OUTPUT_PORTS);
		createEOperation(unitInstanceEClass, UNIT_INSTANCE___GET_INPUT_PORTS);
		createEOperation(unitInstanceEClass, UNIT_INSTANCE___TO_STRING);

		cosimUnitInstanceEClass = createEClass(COSIM_UNIT_INSTANCE);
		createEReference(cosimUnitInstanceEClass, COSIM_UNIT_INSTANCE__DECLARATION);

		portInstanceEClass = createEClass(PORT_INSTANCE);
		createEReference(portInstanceEClass, PORT_INSTANCE__UNIT);
		createEReference(portInstanceEClass, PORT_INSTANCE__ADAPTATION);
		createEOperation(portInstanceEClass, PORT_INSTANCE___SELECTED_ADAPTATIONS);
		createEOperation(portInstanceEClass, PORT_INSTANCE___IS_INPUT);
		createEOperation(portInstanceEClass, PORT_INSTANCE___GETS_VALUE_FROM__PORTINSTANCE);
		createEOperation(portInstanceEClass, PORT_INSTANCE___TO_STRING);

		hierarchicalUnitPortEClass = createEClass(HIERARCHICAL_UNIT_PORT);
		createEOperation(hierarchicalUnitPortEClass, HIERARCHICAL_UNIT_PORT___IS_INPUT);
		createEOperation(hierarchicalUnitPortEClass, HIERARCHICAL_UNIT_PORT___ALT_IS_INPUT);

		inputPortInstanceEClass = createEClass(INPUT_PORT_INSTANCE);
		createEReference(inputPortInstanceEClass, INPUT_PORT_INSTANCE__INTERNAL_VALUE_TO);
		createEReference(inputPortInstanceEClass, INPUT_PORT_INSTANCE__VALUE_FROM);
		createEOperation(inputPortInstanceEClass, INPUT_PORT_INSTANCE___GET_REAL_VALUE_FROM);
		createEOperation(inputPortInstanceEClass, INPUT_PORT_INSTANCE___GETS_VALUE_FROM__PORTINSTANCE);
		createEOperation(inputPortInstanceEClass, INPUT_PORT_INSTANCE___IS_INPUT);

		outputPortInstanceEClass = createEClass(OUTPUT_PORT_INSTANCE);
		createEReference(outputPortInstanceEClass, OUTPUT_PORT_INSTANCE__VALUE_TO);
		createEReference(outputPortInstanceEClass, OUTPUT_PORT_INSTANCE__INTERNAL_VALUE_FROM);
		createEOperation(outputPortInstanceEClass, OUTPUT_PORT_INSTANCE___IS_INPUT);

		alternativeEClass = createEClass(ALTERNATIVE);
		createEAttribute(alternativeEClass, ALTERNATIVE__WEIGHT);
		createEAttribute(alternativeEClass, ALTERNATIVE__SELECTED);
		createEReference(alternativeEClass, ALTERNATIVE__IMPLIES);

		adaptationEClass = createEClass(ADAPTATION);

		portAdaptationEClass = createEClass(PORT_ADAPTATION);
		createEReference(portAdaptationEClass, PORT_ADAPTATION__PORT);
		createEReference(portAdaptationEClass, PORT_ADAPTATION__PARENT);
		createEOperation(portAdaptationEClass, PORT_ADAPTATION___ADAPTED);

		decompositionPortAdaptationEClass = createEClass(DECOMPOSITION_PORT_ADAPTATION);
		createEReference(decompositionPortAdaptationEClass, DECOMPOSITION_PORT_ADAPTATION__CHILDREN);
		createEAttribute(decompositionPortAdaptationEClass, DECOMPOSITION_PORT_ADAPTATION__NAME);
		createEOperation(decompositionPortAdaptationEClass, DECOMPOSITION_PORT_ADAPTATION___SELECTED_ADAPTATIONS);

		unitAdaptationEClass = createEClass(UNIT_ADAPTATION);
		createEReference(unitAdaptationEClass, UNIT_ADAPTATION__UNIT);
		createEReference(unitAdaptationEClass, UNIT_ADAPTATION__PARENT);
		createEOperation(unitAdaptationEClass, UNIT_ADAPTATION___ADAPTED);

		decompositionUnitAdaptationEClass = createEClass(DECOMPOSITION_UNIT_ADAPTATION);
		createEReference(decompositionUnitAdaptationEClass, DECOMPOSITION_UNIT_ADAPTATION__CHILDREN);
		createEAttribute(decompositionUnitAdaptationEClass, DECOMPOSITION_UNIT_ADAPTATION__NAME);
		createEOperation(decompositionUnitAdaptationEClass, DECOMPOSITION_UNIT_ADAPTATION___SELECTED_ADAPTATIONS);

		xorUnitAdaptationEClass = createEClass(XOR_UNIT_ADAPTATION);

		xorPortAdaptationEClass = createEClass(XOR_PORT_ADAPTATION);

		approximationAdaptationEClass = createEClass(APPROXIMATION_ADAPTATION);
		createEAttribute(approximationAdaptationEClass, APPROXIMATION_ADAPTATION__ORDER);

		multiRateAdaptationEClass = createEClass(MULTI_RATE_ADAPTATION);
		createEAttribute(multiRateAdaptationEClass, MULTI_RATE_ADAPTATION__RATE);
		createEAttribute(multiRateAdaptationEClass, MULTI_RATE_ADAPTATION__NAME);

		powerBondAdaptationEClass = createEClass(POWER_BOND_ADAPTATION);
		createEReference(powerBondAdaptationEClass, POWER_BOND_ADAPTATION__EFFORT);
		createEReference(powerBondAdaptationEClass, POWER_BOND_ADAPTATION__FLOW);
		createEReference(powerBondAdaptationEClass, POWER_BOND_ADAPTATION__POUT);
		createEReference(powerBondAdaptationEClass, POWER_BOND_ADAPTATION__PIN);
		createEAttribute(powerBondAdaptationEClass, POWER_BOND_ADAPTATION__NAME);
		createEOperation(powerBondAdaptationEClass, POWER_BOND_ADAPTATION___GET_DUAL);

		extrapolationAdaptationEClass = createEClass(EXTRAPOLATION_ADAPTATION);
		createEAttribute(extrapolationAdaptationEClass, EXTRAPOLATION_ADAPTATION__NAME);

		rollbackInterpolationAdaptationEClass = createEClass(ROLLBACK_INTERPOLATION_ADAPTATION);

		interpolationAdaptationEClass = createEClass(INTERPOLATION_ADAPTATION);
		createEAttribute(interpolationAdaptationEClass, INTERPOLATION_ADAPTATION__NAME);

		// Create data types
		intEDataType = createEDataType(INT);
	}

	/**
	 * <!-- 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);

		// Obtain other dependent packages
		EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);

		// Create type parameters

		// Set bounds for type parameters

		// Add supertypes to classes
		variantDiagramEClass.getESuperTypes().add(this.getIDed());
		rootCandidateScenarioEClass.getESuperTypes().add(this.getIDed());
		rootCandidateScenarioEClass.getESuperTypes().add(this.getAlternative());
		rootCandidateScenarioEClass.getESuperTypes().add(this.getScenario());
		scenarioEClass.getESuperTypes().add(this.getIDed());
		hierarchicalCosimUnitEClass.getESuperTypes().add(this.getScenario());
		hierarchicalCosimUnitEClass.getESuperTypes().add(this.getUnitInstance());
		cosimUnitDeclarationEClass.getESuperTypes().add(this.getIDed());
		unitInstanceEClass.getESuperTypes().add(this.getIDed());
		unitInstanceEClass.getESuperTypes().add(this.getPrecendenceNode());
		cosimUnitInstanceEClass.getESuperTypes().add(this.getUnitInstance());
		portInstanceEClass.getESuperTypes().add(this.getPrecendenceNode());
		portInstanceEClass.getESuperTypes().add(this.getIDed());
		hierarchicalUnitPortEClass.getESuperTypes().add(this.getInputPortInstance());
		hierarchicalUnitPortEClass.getESuperTypes().add(this.getOutputPortInstance());
		inputPortInstanceEClass.getESuperTypes().add(this.getPortInstance());
		outputPortInstanceEClass.getESuperTypes().add(this.getPortInstance());
		adaptationEClass.getESuperTypes().add(this.getAlternative());
		portAdaptationEClass.getESuperTypes().add(this.getAdaptation());
		decompositionPortAdaptationEClass.getESuperTypes().add(this.getPortAdaptation());
		unitAdaptationEClass.getESuperTypes().add(this.getAdaptation());
		decompositionUnitAdaptationEClass.getESuperTypes().add(this.getUnitAdaptation());
		xorUnitAdaptationEClass.getESuperTypes().add(this.getDecompositionUnitAdaptation());
		xorPortAdaptationEClass.getESuperTypes().add(this.getDecompositionPortAdaptation());
		approximationAdaptationEClass.getESuperTypes().add(this.getPortAdaptation());
		multiRateAdaptationEClass.getESuperTypes().add(this.getUnitAdaptation());
		powerBondAdaptationEClass.getESuperTypes().add(this.getUnitAdaptation());
		extrapolationAdaptationEClass.getESuperTypes().add(this.getApproximationAdaptation());
		rollbackInterpolationAdaptationEClass.getESuperTypes().add(this.getExtrapolationAdaptation());
		interpolationAdaptationEClass.getESuperTypes().add(this.getApproximationAdaptation());

		// Initialize classes, features, and operations; add parameters
		initEClass(iDedEClass, IDed.class, "IDed", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getIDed_Identifier(), theEcorePackage.getEString(), "identifier", null, 0, 1, IDed.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(hintConfigurationEClass, HintConfiguration.class, "HintConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getHintConfiguration_Candidates(), this.getRootCandidateScenario(), null, "candidates", null, 0, -1, HintConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getHintConfiguration_CsuDeclarations(), this.getCosimUnitDeclaration(), null, "csuDeclarations", null, 0, -1, HintConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getHintConfiguration_Root(), this.getVariantDiagram(), null, "root", null, 0, 1, HintConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getHintConfiguration_Nodes(), this.getVariantDiagram(), null, "nodes", null, 0, -1, HintConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(variantDiagramEClass, VariantDiagram.class, "VariantDiagram", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getVariantDiagram_Children(), this.getVariantDiagram(), null, "children", null, 0, -1, VariantDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getVariantDiagram_Alternative(), this.getAlternative(), null, "alternative", null, 0, 1, VariantDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getVariantDiagram_Name(), theEcorePackage.getEString(), "name", null, 0, 1, VariantDiagram.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);

		initEClass(precendenceNodeEClass, PrecendenceNode.class, "PrecendenceNode", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getPrecendenceNode_Precedes(), this.getPrecendenceNode(), this.getPrecendenceNode_Succeeds(), "precedes", null, 0, -1, PrecendenceNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getPrecendenceNode_Succeeds(), this.getPrecendenceNode(), this.getPrecendenceNode_Precedes(), "succeeds", null, 0, -1, PrecendenceNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getPrecendenceNode_Before(), this.getPrecendenceNode(), this.getPrecendenceNode_After(), "before", null, 0, 1, PrecendenceNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getPrecendenceNode_After(), this.getPrecendenceNode(), this.getPrecendenceNode_Before(), "after", null, 0, 1, PrecendenceNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(rootCandidateScenarioEClass, RootCandidateScenario.class, "RootCandidateScenario", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getRootCandidateScenario_Name(), theEcorePackage.getEString(), "name", null, 0, 1, RootCandidateScenario.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEAttribute(getRootCandidateScenario_StopTime(), theEcorePackage.getEDouble(), "stopTime", null, 0, 1, RootCandidateScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getRootCandidateScenario_StepSize(), theEcorePackage.getEDouble(), "stepSize", null, 0, 1, RootCandidateScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getRootCandidateScenario_OutputStepSize(), theEcorePackage.getEDouble(), "outputStepSize", null, 0, 1, RootCandidateScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getRootCandidateScenario_MaxInitIterations(), theEcorePackage.getEInt(), "maxInitIterations", "10", 0, 1, RootCandidateScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(scenarioEClass, Scenario.class, "Scenario", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getScenario_Cosimunits(), this.getUnitInstance(), this.getUnitInstance_Scenario(), "cosimunits", null, 0, -1, Scenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(hierarchicalCosimUnitEClass, HierarchicalCosimUnit.class, "HierarchicalCosimUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEOperation(getHierarchicalCosimUnit__Valid(), theEcorePackage.getEBoolean(), "valid", 0, 1, !IS_UNIQUE, IS_ORDERED);

		initEClass(cosimUnitDeclarationEClass, CosimUnitDeclaration.class, "CosimUnitDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getCosimUnitDeclaration_Path(), theEcorePackage.getEString(), "path", null, 0, 1, CosimUnitDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getCosimUnitDeclaration_Guid(), theEcorePackage.getEString(), "guid", null, 0, 1, CosimUnitDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(unitInstanceEClass, UnitInstance.class, "UnitInstance", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getUnitInstance_Scenario(), this.getScenario(), this.getScenario_Cosimunits(), "scenario", null, 0, 1, UnitInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getUnitInstance_Adaptation(), this.getUnitAdaptation(), this.getUnitAdaptation_Unit(), "adaptation", null, 0, 1, UnitInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getUnitInstance_Ports(), this.getPortInstance(), this.getPortInstance_Unit(), "ports", null, 0, -1, UnitInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEOperation(getUnitInstance__SelectedAdaptations(), this.getUnitAdaptation(), "selectedAdaptations", 0, -1, !IS_UNIQUE, IS_ORDERED);

		initEOperation(getUnitInstance__GetOutputPorts(), this.getOutputPortInstance(), "getOutputPorts", 0, -1, !IS_UNIQUE, IS_ORDERED);

		initEOperation(getUnitInstance__GetInputPorts(), this.getInputPortInstance(), "getInputPorts", 0, -1, !IS_UNIQUE, IS_ORDERED);

		initEOperation(getUnitInstance__ToString(), theEcorePackage.getEString(), "toString", 0, 1, !IS_UNIQUE, IS_ORDERED);

		initEClass(cosimUnitInstanceEClass, CosimUnitInstance.class, "CosimUnitInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getCosimUnitInstance_Declaration(), this.getCosimUnitDeclaration(), null, "declaration", null, 1, 1, CosimUnitInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(portInstanceEClass, PortInstance.class, "PortInstance", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getPortInstance_Unit(), this.getUnitInstance(), this.getUnitInstance_Ports(), "unit", null, 0, 1, PortInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getPortInstance_Adaptation(), this.getPortAdaptation(), this.getPortAdaptation_Port(), "adaptation", null, 0, 1, PortInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEOperation(getPortInstance__SelectedAdaptations(), this.getPortAdaptation(), "selectedAdaptations", 0, -1, !IS_UNIQUE, IS_ORDERED);

		initEOperation(getPortInstance__IsInput(), theEcorePackage.getEBoolean(), "isInput", 0, 1, !IS_UNIQUE, IS_ORDERED);

		EOperation op = initEOperation(getPortInstance__GetsValueFrom__PortInstance(), theEcorePackage.getEBoolean(), "getsValueFrom", 0, 1, !IS_UNIQUE, IS_ORDERED);
		addEParameter(op, this.getPortInstance(), "p", 0, 1, !IS_UNIQUE, IS_ORDERED);

		initEOperation(getPortInstance__ToString(), theEcorePackage.getEString(), "toString", 0, 1, !IS_UNIQUE, IS_ORDERED);

		initEClass(hierarchicalUnitPortEClass, HierarchicalUnitPort.class, "HierarchicalUnitPort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEOperation(getHierarchicalUnitPort__IsInput(), theEcorePackage.getEBoolean(), "isInput", 0, 1, !IS_UNIQUE, IS_ORDERED);

		initEOperation(getHierarchicalUnitPort__AltIsInput(), theEcorePackage.getEBoolean(), "altIsInput", 0, 1, !IS_UNIQUE, IS_ORDERED);

		initEClass(inputPortInstanceEClass, InputPortInstance.class, "InputPortInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getInputPortInstance_InternalValueTo(), this.getOutputPortInstance(), this.getOutputPortInstance_InternalValueFrom(), "internalValueTo", null, 0, -1, InputPortInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getInputPortInstance_ValueFrom(), this.getOutputPortInstance(), this.getOutputPortInstance_ValueTo(), "valueFrom", null, 0, 1, InputPortInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEOperation(getInputPortInstance__GetRealValueFrom(), this.getOutputPortInstance(), "getRealValueFrom", 0, 1, !IS_UNIQUE, IS_ORDERED);

		op = initEOperation(getInputPortInstance__GetsValueFrom__PortInstance(), theEcorePackage.getEBoolean(), "getsValueFrom", 0, 1, !IS_UNIQUE, IS_ORDERED);
		addEParameter(op, this.getPortInstance(), "p", 0, 1, !IS_UNIQUE, IS_ORDERED);

		initEOperation(getInputPortInstance__IsInput(), theEcorePackage.getEBoolean(), "isInput", 0, 1, !IS_UNIQUE, IS_ORDERED);

		initEClass(outputPortInstanceEClass, OutputPortInstance.class, "OutputPortInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getOutputPortInstance_ValueTo(), this.getInputPortInstance(), this.getInputPortInstance_ValueFrom(), "valueTo", null, 0, -1, OutputPortInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getOutputPortInstance_InternalValueFrom(), this.getInputPortInstance(), this.getInputPortInstance_InternalValueTo(), "internalValueFrom", null, 0, -1, OutputPortInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEOperation(getOutputPortInstance__IsInput(), theEcorePackage.getEBoolean(), "isInput", 0, 1, !IS_UNIQUE, IS_ORDERED);

		initEClass(alternativeEClass, Alternative.class, "Alternative", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getAlternative_Weight(), theEcorePackage.getEInt(), "weight", null, 0, 1, Alternative.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getAlternative_Selected(), theEcorePackage.getEBoolean(), "selected", null, 0, 1, Alternative.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getAlternative_Implies(), this.getAlternative(), null, "implies", null, 0, -1, Alternative.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(adaptationEClass, Adaptation.class, "Adaptation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(portAdaptationEClass, PortAdaptation.class, "PortAdaptation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getPortAdaptation_Port(), this.getPortInstance(), this.getPortInstance_Adaptation(), "port", null, 0, 1, PortAdaptation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getPortAdaptation_Parent(), this.getDecompositionPortAdaptation(), this.getDecompositionPortAdaptation_Children(), "parent", null, 0, 1, PortAdaptation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEOperation(getPortAdaptation__Adapted(), this.getPortInstance(), "adapted", 0, 1, !IS_UNIQUE, IS_ORDERED);

		initEClass(decompositionPortAdaptationEClass, DecompositionPortAdaptation.class, "DecompositionPortAdaptation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getDecompositionPortAdaptation_Children(), this.getPortAdaptation(), this.getPortAdaptation_Parent(), "children", null, 0, -1, DecompositionPortAdaptation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDecompositionPortAdaptation_Name(), theEcorePackage.getEString(), "name", null, 0, 1, DecompositionPortAdaptation.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);

		initEOperation(getDecompositionPortAdaptation__SelectedAdaptations(), this.getPortAdaptation(), "selectedAdaptations", 0, -1, !IS_UNIQUE, IS_ORDERED);

		initEClass(unitAdaptationEClass, UnitAdaptation.class, "UnitAdaptation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getUnitAdaptation_Unit(), this.getUnitInstance(), this.getUnitInstance_Adaptation(), "unit", null, 0, 1, UnitAdaptation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getUnitAdaptation_Parent(), this.getDecompositionUnitAdaptation(), this.getDecompositionUnitAdaptation_Children(), "parent", null, 0, 1, UnitAdaptation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEOperation(getUnitAdaptation__Adapted(), this.getUnitInstance(), "adapted", 0, 1, !IS_UNIQUE, IS_ORDERED);

		initEClass(decompositionUnitAdaptationEClass, DecompositionUnitAdaptation.class, "DecompositionUnitAdaptation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getDecompositionUnitAdaptation_Children(), this.getUnitAdaptation(), this.getUnitAdaptation_Parent(), "children", null, 0, -1, DecompositionUnitAdaptation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDecompositionUnitAdaptation_Name(), theEcorePackage.getEString(), "name", null, 0, 1, DecompositionUnitAdaptation.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);

		initEOperation(getDecompositionUnitAdaptation__SelectedAdaptations(), this.getUnitAdaptation(), "selectedAdaptations", 0, -1, !IS_UNIQUE, IS_ORDERED);

		initEClass(xorUnitAdaptationEClass, XorUnitAdaptation.class, "XorUnitAdaptation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(xorPortAdaptationEClass, XorPortAdaptation.class, "XorPortAdaptation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(approximationAdaptationEClass, ApproximationAdaptation.class, "ApproximationAdaptation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getApproximationAdaptation_Order(), theEcorePackage.getEInt(), "order", null, 0, 1, ApproximationAdaptation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(multiRateAdaptationEClass, MultiRateAdaptation.class, "MultiRateAdaptation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getMultiRateAdaptation_Rate(), theEcorePackage.getEInt(), "rate", null, 0, 1, MultiRateAdaptation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getMultiRateAdaptation_Name(), theEcorePackage.getEString(), "name", null, 0, 1, MultiRateAdaptation.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);

		initEClass(powerBondAdaptationEClass, PowerBondAdaptation.class, "PowerBondAdaptation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getPowerBondAdaptation_Effort(), this.getPortInstance(), null, "effort", null, 0, 1, PowerBondAdaptation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getPowerBondAdaptation_Flow(), this.getPortInstance(), null, "flow", null, 0, 1, PowerBondAdaptation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getPowerBondAdaptation_POut(), this.getOutputPortInstance(), null, "pOut", null, 0, 1, PowerBondAdaptation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getPowerBondAdaptation_PIn(), this.getInputPortInstance(), null, "pIn", null, 0, 1, PowerBondAdaptation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getPowerBondAdaptation_Name(), theEcorePackage.getEString(), "name", null, 0, 1, PowerBondAdaptation.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);

		initEOperation(getPowerBondAdaptation__GetDual(), this.getPowerBondAdaptation(), "getDual", 0, 1, !IS_UNIQUE, IS_ORDERED);

		initEClass(extrapolationAdaptationEClass, ExtrapolationAdaptation.class, "ExtrapolationAdaptation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getExtrapolationAdaptation_Name(), theEcorePackage.getEString(), "name", null, 0, 1, ExtrapolationAdaptation.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);

		initEClass(rollbackInterpolationAdaptationEClass, RollbackInterpolationAdaptation.class, "RollbackInterpolationAdaptation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(interpolationAdaptationEClass, InterpolationAdaptation.class, "InterpolationAdaptation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getInterpolationAdaptation_Name(), theEcorePackage.getEString(), "name", null, 0, 1, InterpolationAdaptation.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);

		// Initialize data types
		initEDataType(intEDataType, int.class, "Int", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);

		// Create resource
		createResource(eNS_URI);
	}

} //HintcoPackageImpl
