TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
ReferencesPackage theReferencesPackage = (ReferencesPackage)EPackage.Registry.INSTANCE.getEPackage(ReferencesPackage.eNS_URI);
MembersPackage theMembersPackage = (MembersPackage)EPackage.Registry.INSTANCE.getEPackage(MembersPackage.eNS_URI);
StatementsPackage theStatementsPackage = (StatementsPackage)EPackage.Registry.INSTANCE.getEPackage(StatementsPackage.eNS_URI);
ModifiersPackage theModifiersPackage = (ModifiersPackage)EPackage.Registry.INSTANCE.getEPackage(ModifiersPackage.eNS_URI);
CommonsPackage theCommonsPackage = (CommonsPackage)EPackage.Registry.INSTANCE.getEPackage(CommonsPackage.eNS_URI);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
classifierEClass.getESuperTypes().add(theTypesPackage.getType());
classifierEClass.getESuperTypes().add(theReferencesPackage.getReferenceableElement());
concreteClassifierEClass.getESuperTypes().add(this.getClassifier());
concreteClassifierEClass.getESuperTypes().add(theMembersPackage.getMemberContainer());
concreteClassifierEClass.getESuperTypes().add(theMembersPackage.getMember());
concreteClassifierEClass.getESuperTypes().add(theStatementsPackage.getStatement());
concreteClassifierEClass.getESuperTypes().add(theModifiersPackage.getAnnotableAndModifiable());
implementorEClass.getESuperTypes().add(theCommonsPackage.getCommentable());
classEClass.getESuperTypes().add(this.getConcreteClassifier());
classEClass.getESuperTypes().add(this.getImplementor());
interfaceEClass.getESuperTypes().add(this.getConcreteClassifier());
enumerationEClass.getESuperTypes().add(this.getConcreteClassifier());
enumerationEClass.getESuperTypes().add(this.getImplementor());
annotationEClass.getESuperTypes().add(this.getConcreteClassifier());
anonymousClassEClass.getESuperTypes().add(theTypesPackage.getType());
anonymousClassEClass.getESuperTypes().add(theMembersPackage.getMemberContainer());
// Initialize classes and features; add operations and parameters
initEClass(classifierEClass, Classifier.class, "Classifier", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
addEOperation(classifierEClass, this.getConcreteClassifier(), "getAllSuperClassifiers", 0, -1, IS_UNIQUE, IS_ORDERED);
initEClass(concreteClassifierEClass, ConcreteClassifier.class, "ConcreteClassifier", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getConcreteClassifier_FullName(), ecorePackage.getEString(), "fullName", null, 0, 1, ConcreteClassifier.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
addEOperation(concreteClassifierEClass, this.getConcreteClassifier(), "getInnerClassifiers", 0, -1, IS_UNIQUE, IS_ORDERED);
addEOperation(concreteClassifierEClass, this.getConcreteClassifier(), "getAllInnerClassifiers", 0, -1, IS_UNIQUE, IS_ORDERED);
addEOperation(concreteClassifierEClass, theTypesPackage.getClassifierReference(), "getSuperTypeReferences", 0, -1, IS_UNIQUE, IS_ORDERED);
EOperation op = addEOperation(concreteClassifierEClass, theMembersPackage.getMember(), "getAllMembers", 0, -1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theCommonsPackage.getCommentable(), "context", 0, 1, IS_UNIQUE, IS_ORDERED);
initEClass(implementorEClass, Implementor.class, "Implementor", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getImplementor_Implements(), theTypesPackage.getTypeReference(), null, "implements", null, 0, -1, Implementor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(classEClass, eu.admire.dispel.classifiers.Class.class, "Class", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getClass_Extends(), theTypesPackage.getTypeReference(), null, "extends", null, 0, 1, eu.admire.dispel.classifiers.Class.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getClass_DefaultExtends(), theTypesPackage.getTypeReference(), null, "defaultExtends", null, 0, 1, eu.admire.dispel.classifiers.Class.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
addEOperation(classEClass, this.getConcreteClassifier(), "getAllSuperClassifiers", 0, -1, IS_UNIQUE, IS_ORDERED);
addEOperation(classEClass, this.getClass_(), "getSuperClass", 0, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(classEClass, theTypesPackage.getPrimitiveType(), "unWrapPrimitiveType", 0, 1, IS_UNIQUE, IS_ORDERED);
initEClass(interfaceEClass, Interface.class, "Interface", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getInterface_Extends(), theTypesPackage.getTypeReference(), null, "extends", null, 0, -1, Interface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getInterface_DefaultExtends(), theTypesPackage.getTypeReference(), null, "defaultExtends", null, 0, -1, Interface.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
addEOperation(interfaceEClass, this.getConcreteClassifier(), "getAllSuperClassifiers", 0, -1, IS_UNIQUE, IS_ORDERED);
initEClass(enumerationEClass, Enumeration.class, "Enumeration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getEnumeration_Constants(), theMembersPackage.getEnumConstant(), null, "constants", null, 0, -1, Enumeration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
addEOperation(enumerationEClass, this.getConcreteClassifier(), "getAllSuperClassifiers", 0, -1, IS_UNIQUE, IS_ORDERED);
initEClass(annotationEClass, Annotation.class, "Annotation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
addEOperation(annotationEClass, this.getConcreteClassifier(), "getAllSuperClassifiers", 0, -1, IS_UNIQUE, IS_ORDERED);
initEClass(anonymousClassEClass, AnonymousClass.class, "AnonymousClass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
addEOperation(anonymousClassEClass, this.getConcreteClassifier(), "getAllSuperClassifiers", 0, -1, IS_UNIQUE, IS_ORDERED);
addEOperation(anonymousClassEClass, this.getConcreteClassifier(), "getSuperClassifier", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(anonymousClassEClass, theMembersPackage.getMember(), "getAllMembers", 0, -1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, theCommonsPackage.getCommentable(), "context", 0, 1, IS_UNIQUE, IS_ORDERED);
// Create resource
createResource(eNS_URI);
}