VariablesPackage theVariablesPackage = (VariablesPackage)EPackage.Registry.INSTANCE.getEPackage(VariablesPackage.eNS_URI);
ModifiersPackage theModifiersPackage = (ModifiersPackage)EPackage.Registry.INSTANCE.getEPackage(ModifiersPackage.eNS_URI);
CommonsPackage theCommonsPackage = (CommonsPackage)EPackage.Registry.INSTANCE.getEPackage(CommonsPackage.eNS_URI);
TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
ReferencesPackage theReferencesPackage = (ReferencesPackage)EPackage.Registry.INSTANCE.getEPackage(ReferencesPackage.eNS_URI);
ArraysPackage theArraysPackage = (ArraysPackage)EPackage.Registry.INSTANCE.getEPackage(ArraysPackage.eNS_URI);
InstantiationsPackage theInstantiationsPackage = (InstantiationsPackage)EPackage.Registry.INSTANCE.getEPackage(InstantiationsPackage.eNS_URI);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
parameterEClass.getESuperTypes().add(theVariablesPackage.getVariable());
parameterEClass.getESuperTypes().add(theModifiersPackage.getAnnotableAndModifiable());
parametrizableEClass.getESuperTypes().add(theCommonsPackage.getCommentable());
ordinaryParameterEClass.getESuperTypes().add(this.getParameter());
variableLengthParameterEClass.getESuperTypes().add(this.getParameter());
processingElementParameterEClass.getESuperTypes().add(this.getParameter());
processingElementParameterEClass.getESuperTypes().add(theModifiersPackage.getModifiableParameter());
inputEClass.getESuperTypes().add(this.getProcessingElementParameter());
outputEClass.getESuperTypes().add(this.getProcessingElementParameter());
inputConnectionEClass.getESuperTypes().add(this.getInput());
outputConnectionEClass.getESuperTypes().add(this.getOutput());
additionalParameterEClass.getESuperTypes().add(theReferencesPackage.getReferenceableElement());
additionalParameterEClass.getESuperTypes().add(theInstantiationsPackage.getInitializable());
additionalParameterEClass.getESuperTypes().add(theArraysPackage.getArrayTypeable());
additionalConnectionEClass.getESuperTypes().add(theReferencesPackage.getReferenceableElement());
additionalConnectionEClass.getESuperTypes().add(theInstantiationsPackage.getInitializable());
additionalConnectionEClass.getESuperTypes().add(theArraysPackage.getArrayTypeable());
parameterLengthEClass.getESuperTypes().add(theInstantiationsPackage.getInitializable());
// Initialize classes and features; add operations and parameters
initEClass(parameterEClass, Parameter.class, "Parameter", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(parametrizableEClass, Parametrizable.class, "Parametrizable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getParametrizable_Parameters(), theVariablesPackage.getVariable(), null, "parameters", null, 0, -1, Parametrizable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(ordinaryParameterEClass, OrdinaryParameter.class, "OrdinaryParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getOrdinaryParameter_AdditionalParameter(), this.getAdditionalParameter(), null, "additionalParameter", null, 0, -1, OrdinaryParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getOrdinaryParameter_DomainType(), theTypesPackage.getDomainTypeConstructor(), null, "domainType", null, 0, 1, OrdinaryParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(variableLengthParameterEClass, VariableLengthParameter.class, "VariableLengthParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(processingElementParameterEClass, ProcessingElementParameter.class, "ProcessingElementParameter", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getProcessingElementParameter_InitialValue(), theReferencesPackage.getReference(), null, "initialValue", null, 1, 1, ProcessingElementParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getProcessingElementParameter_StructuralType(), theTypesPackage.getTypeReference(), null, "structuralType", null, 0, 1, ProcessingElementParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getProcessingElementParameter_DomainType(), theReferencesPackage.getDomainTypeReference(), null, "domainType", null, 0, 1, ProcessingElementParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getProcessingElementParameter_AdditionalParameter(), this.getAdditionalParameter(), null, "additionalParameter", null, 0, -1, ProcessingElementParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getProcessingElementParameter_ArraySelectors(), theArraysPackage.getArraySelector(), null, "arraySelectors", null, 0, -1, ProcessingElementParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(inputEClass, Input.class, "Input", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(outputEClass, Output.class, "Output", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);