setNsURI(eNS_URI);
// Obtain other dependent packages
CommonsPackage theCommonsPackage = (CommonsPackage)EPackage.Registry.INSTANCE.getEPackage(CommonsPackage.eNS_URI);
ArraysPackage theArraysPackage = (ArraysPackage)EPackage.Registry.INSTANCE.getEPackage(ArraysPackage.eNS_URI);
MembersPackage theMembersPackage = (MembersPackage)EPackage.Registry.INSTANCE.getEPackage(MembersPackage.eNS_URI);
ReferencesPackage theReferencesPackage = (ReferencesPackage)EPackage.Registry.INSTANCE.getEPackage(ReferencesPackage.eNS_URI);
ClassifiersPackage theClassifiersPackage = (ClassifiersPackage)EPackage.Registry.INSTANCE.getEPackage(ClassifiersPackage.eNS_URI);
ParametersPackage theParametersPackage = (ParametersPackage)EPackage.Registry.INSTANCE.getEPackage(ParametersPackage.eNS_URI);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
typeEClass.getESuperTypes().add(theCommonsPackage.getCommentable());
typedElementEClass.getESuperTypes().add(theCommonsPackage.getCommentable());
typeReferenceEClass.getESuperTypes().add(theCommonsPackage.getCommentable());
classifierReferenceEClass.getESuperTypes().add(this.getTypeReference());
namespaceClassifierReferenceEClass.getESuperTypes().add(this.getTypeReference());
namespaceClassifierReferenceEClass.getESuperTypes().add(theCommonsPackage.getNamespaceAwareElement());
primitiveTypeEClass.getESuperTypes().add(this.getType());
primitiveTypeEClass.getESuperTypes().add(this.getTypeReference());
booleanEClass.getESuperTypes().add(this.getPrimitiveType());
byteEClass.getESuperTypes().add(this.getPrimitiveType());
charEClass.getESuperTypes().add(this.getPrimitiveType());
realEClass.getESuperTypes().add(this.getPrimitiveType());
stringEClass.getESuperTypes().add(this.getPrimitiveType());
integerEClass.getESuperTypes().add(this.getPrimitiveType());
anyEClass.getESuperTypes().add(this.getPrimitiveType());
restEClass.getESuperTypes().add(theParametersPackage.getParameter());
streamEClass.getESuperTypes().add(this.getType());
streamEClass.getESuperTypes().add(this.getTypeReference());
domainTypeDefinitionEClass.getESuperTypes().add(this.getDispelType());
domainTypeDefinitionEClass.getESuperTypes().add(theCommonsPackage.getNamespaceAwareElement());
domainTypeDefinitionEClass.getESuperTypes().add(theArraysPackage.getArrayTypeable());
domainTypeDefinitionEClass.getESuperTypes().add(theCommonsPackage.getNamedElement());
domainTypeDefinitionEClass.getESuperTypes().add(this.getTypeReference());
structuralTypeDefinitionEClass.getESuperTypes().add(this.getDispelType());
structuralTypeDefinitionEClass.getESuperTypes().add(theCommonsPackage.getNamespaceAwareElement());
structuralTypeDefinitionEClass.getESuperTypes().add(theArraysPackage.getArrayTypeable());
structuralTypeDefinitionEClass.getESuperTypes().add(theCommonsPackage.getNamedElement());
structuralTypeDefinitionEClass.getESuperTypes().add(this.getTypeReference());
structuralTypeConstructorEClass.getESuperTypes().add(this.getType());
structuralTypeConstructorEClass.getESuperTypes().add(this.getTypeReference());
structuralTypeConstructorEClass.getESuperTypes().add(theReferencesPackage.getAbstractTypeReference());
listTypeConstructorEClass.getESuperTypes().add(this.getStructuralTypeConstructor());
tupleTypeConstructorEClass.getESuperTypes().add(this.getStructuralTypeConstructor());
arrayTypeConstructorEClass.getESuperTypes().add(this.getStructuralTypeConstructor());
typeNamespaceEClass.getESuperTypes().add(theReferencesPackage.getReferenceableElement());
dispelTypeEClass.getESuperTypes().add(this.getType());
connectionTypeEClass.getESuperTypes().add(this.getType());
connectionTypeEClass.getESuperTypes().add(this.getTypeReference());
domainTypeConstructorEClass.getESuperTypes().add(theReferencesPackage.getAbstractTypeReference());
domainTypeConstructorEClass.getESuperTypes().add(theReferencesPackage.getDomainTypeReference());
listDomainTypeConstructorEClass.getESuperTypes().add(this.getDomainTypeConstructor());
tupleDomainTypeConstructorEClass.getESuperTypes().add(this.getDomainTypeConstructor());
domainTypeURIEClass.getESuperTypes().add(this.getDomainTypeConstructor());
connectionTypeDefinitionEClass.getESuperTypes().add(this.getDispelType());
connectionTypeDefinitionEClass.getESuperTypes().add(theCommonsPackage.getNamespaceAwareElement());
connectionTypeDefinitionEClass.getESuperTypes().add(theArraysPackage.getArrayTypeable());
connectionTypeDefinitionEClass.getESuperTypes().add(theCommonsPackage.getNamedElement());
connectionTypeDefinitionEClass.getESuperTypes().add(this.getTypeReference());
// Initialize classes and features; add operations and parameters
initEClass(typeEClass, Type.class, "Type", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
EOperation op = addEOperation(typeEClass, ecorePackage.getEBoolean(), "equalsType", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getELong(), "arrayDimension", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getType(), "otherType", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getELong(), "otherArrayDimension", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(typeEClass, ecorePackage.getEBoolean(), "isSuperType", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getELong(), "arrayDimension", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getType(), "otherType", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theArraysPackage.getArrayTypeable(), "otherArrayType", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(typeEClass, theMembersPackage.getMember(), "getAllMembers", 0, -1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theCommonsPackage.getCommentable(), "context", 0, 1, IS_UNIQUE, IS_ORDERED);
initEClass(typedElementEClass, TypedElement.class, "TypedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getTypedElement_TypeReference(), this.getTypeReference(), null, "typeReference", null, 0, 1, TypedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(typeReferenceEClass, TypeReference.class, "TypeReference", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
addEOperation(typeReferenceEClass, this.getType(), "getTarget", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(typeReferenceEClass, this.getType(), "getBoundTarget", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theReferencesPackage.getReference(), "reference", 0, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(typeReferenceEClass, this.getClassifierReference(), "getPureClassifierReference", 0, 1, IS_UNIQUE, IS_ORDERED);
initEClass(classifierReferenceEClass, ClassifierReference.class, "ClassifierReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getClassifierReference_Target(), theClassifiersPackage.getClassifier(), null, "target", null, 1, 1, ClassifierReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(namespaceClassifierReferenceEClass, NamespaceClassifierReference.class, "NamespaceClassifierReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getNamespaceClassifierReference_ClassifierReferences(), this.getClassifierReference(), null, "classifierReferences", null, 1, -1, NamespaceClassifierReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(primitiveTypeEClass, PrimitiveType.class, "PrimitiveType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(primitiveTypeEClass, theMembersPackage.getMember(), "getAllMembers", 0, -1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theCommonsPackage.getCommentable(), "context", 0, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(primitiveTypeEClass, theClassifiersPackage.getClass_(), "wrapPrimitiveType", 0, 1, IS_UNIQUE, IS_ORDERED);
initEClass(booleanEClass, eu.admire.dispel.types.Boolean.class, "Boolean", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);