/** * <copyright> * </copyright> * * $Id$ */ package org.yakindu.base.types.impl; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EEnum; import org.eclipse.emf.ecore.EOperation; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.impl.EPackageImpl; import org.yakindu.base.base.BasePackage; import org.yakindu.base.types.AnnotatableElement; import org.yakindu.base.types.Annotation; import org.yakindu.base.types.AnnotationType; import org.yakindu.base.types.ArrayTypeSpecifier; import org.yakindu.base.types.ComplexType; import org.yakindu.base.types.Declaration; import org.yakindu.base.types.Direction; import org.yakindu.base.types.Domain; import org.yakindu.base.types.EnumerationType; import org.yakindu.base.types.Enumerator; import org.yakindu.base.types.Event; import org.yakindu.base.types.GenericElement; import org.yakindu.base.types.Operation; import org.yakindu.base.types.PackageMember; import org.yakindu.base.types.Parameter; import org.yakindu.base.types.PrimitiveType; import org.yakindu.base.types.Property; import org.yakindu.base.types.RangeConstraint; import org.yakindu.base.types.Type; import org.yakindu.base.types.TypeAlias; import org.yakindu.base.types.TypeConstraint; import org.yakindu.base.types.TypeParameter; import org.yakindu.base.types.TypeSpecifier; import org.yakindu.base.types.TypedElement; import org.yakindu.base.types.TypesFactory; import org.yakindu.base.types.TypesPackage; /** * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!-- * end-user-doc --> * @generated */ public class TypesPackageImpl extends EPackageImpl implements TypesPackage { /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass packageEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass typeEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass declarationEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass operationEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass propertyEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass parameterEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass typedElementEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass typeSpecifierEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass eventEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass enumerationTypeEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass primitiveTypeEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass complexTypeEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass enumeratorEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass typeConstraintEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass typeParameterEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass genericElementEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass packageMemberEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass rangeConstraintEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass domainEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass typeAliasEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass annotationEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass annotatableElementEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass arrayTypeSpecifierEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass annotationTypeEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EEnum directionEEnum = 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 org.yakindu.base.types.TypesPackage#eNS_URI * @see #init() * @generated */ private TypesPackageImpl() { super(eNS_URI, TypesFactory.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 TypesPackage#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 * @generated */ public static TypesPackage init() { if (isInited) return (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI); // Obtain or create and register package TypesPackageImpl theTypesPackage = (TypesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof TypesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new TypesPackageImpl()); isInited = true; // Initialize simple dependencies BasePackage.eINSTANCE.eClass(); // Create package meta-data objects theTypesPackage.createPackageContents(); // Initialize created meta-data theTypesPackage.initializePackageContents(); // Mark meta-data to indicate it can't be changed theTypesPackage.freeze(); // Update the registry and return the package EPackage.Registry.INSTANCE.put(TypesPackage.eNS_URI, theTypesPackage); return theTypesPackage; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getPackage() { return packageEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getPackage_Member() { return (EReference)packageEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getPackage_Domain() { return (EReference)packageEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getPackage_Import() { return (EReference)packageEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getType() { return typeEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getType_Constraint() { return (EReference)typeEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getType_Abstract() { return (EAttribute)typeEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getType_Visible() { return (EAttribute)typeEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getDeclaration() { return declarationEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getOperation() { return operationEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getOperation_Parameters() { return (EReference)operationEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getOperation_Variadic() { return (EAttribute)operationEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getProperty() { return propertyEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getProperty_Const() { return (EAttribute)propertyEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getProperty_Readonly() { return (EAttribute)propertyEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getProperty_External() { return (EAttribute)propertyEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getParameter() { return parameterEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getParameter_OwningOperation() { return (EReference)parameterEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getParameter_VarArgs() { return (EAttribute)parameterEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getParameter_Optional() { return (EAttribute)parameterEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getParameter_Annotations() { return (EReference)parameterEClass.getEStructuralFeatures().get(3); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getTypedElement() { return typedElementEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getTypedElement_Type() { return (EReference)typedElementEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getTypedElement_TypeSpecifier() { return (EReference)typedElementEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getTypeSpecifier() { return typeSpecifierEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getTypeSpecifier_Type() { return (EReference)typeSpecifierEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getTypeSpecifier_TypeArguments() { return (EReference)typeSpecifierEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getEvent() { return eventEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getEvent_Direction() { return (EAttribute)eventEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getEnumerationType() { return enumerationTypeEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getEnumerationType_Enumerator() { return (EReference)enumerationTypeEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getPrimitiveType() { return primitiveTypeEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getPrimitiveType_BaseType() { return (EReference)primitiveTypeEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getComplexType() { return complexTypeEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getComplexType_Features() { return (EReference)complexTypeEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getComplexType_SuperTypes() { return (EReference)complexTypeEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getEnumerator() { return enumeratorEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getEnumerator_OwningEnumeration() { return (EReference)enumeratorEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getEnumerator_LiteralValue() { return (EAttribute)enumeratorEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getTypeConstraint() { return typeConstraintEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getTypeConstraint_Value() { return (EAttribute)typeConstraintEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getTypeParameter() { return typeParameterEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getTypeParameter_Bound() { return (EReference)typeParameterEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getGenericElement() { return genericElementEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getGenericElement_TypeParameters() { return (EReference)genericElementEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getPackageMember() { return packageMemberEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getPackageMember_Id() { return (EAttribute)packageMemberEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getPackageMember_Annotations() { return (EReference)packageMemberEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getRangeConstraint() { return rangeConstraintEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getRangeConstraint_LowerBound() { return (EAttribute)rangeConstraintEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getRangeConstraint_UpperBound() { return (EAttribute)rangeConstraintEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getDomain() { return domainEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getDomain_DomainID() { return (EAttribute)domainEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getTypeAlias() { return typeAliasEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getAnnotation() { return annotationEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getAnnotation_Type() { return (EReference)annotationEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getAnnotatableElement() { return annotatableElementEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getArrayTypeSpecifier() { return arrayTypeSpecifierEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getArrayTypeSpecifier_Size() { return (EAttribute)arrayTypeSpecifierEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getAnnotationType() { return annotationTypeEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getAnnotationType_Properties() { return (EReference)annotationTypeEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getAnnotationType_Targets() { return (EReference)annotationTypeEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EEnum getDirection() { return directionEEnum; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public TypesFactory getTypesFactory() { return (TypesFactory)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 packageEClass = createEClass(PACKAGE); createEReference(packageEClass, PACKAGE__MEMBER); createEReference(packageEClass, PACKAGE__DOMAIN); createEReference(packageEClass, PACKAGE__IMPORT); typeEClass = createEClass(TYPE); createEReference(typeEClass, TYPE__CONSTRAINT); createEAttribute(typeEClass, TYPE__ABSTRACT); createEAttribute(typeEClass, TYPE__VISIBLE); declarationEClass = createEClass(DECLARATION); operationEClass = createEClass(OPERATION); createEReference(operationEClass, OPERATION__PARAMETERS); createEAttribute(operationEClass, OPERATION__VARIADIC); propertyEClass = createEClass(PROPERTY); createEAttribute(propertyEClass, PROPERTY__CONST); createEAttribute(propertyEClass, PROPERTY__READONLY); createEAttribute(propertyEClass, PROPERTY__EXTERNAL); parameterEClass = createEClass(PARAMETER); createEReference(parameterEClass, PARAMETER__OWNING_OPERATION); createEAttribute(parameterEClass, PARAMETER__VAR_ARGS); createEAttribute(parameterEClass, PARAMETER__OPTIONAL); createEReference(parameterEClass, PARAMETER__ANNOTATIONS); typedElementEClass = createEClass(TYPED_ELEMENT); createEReference(typedElementEClass, TYPED_ELEMENT__TYPE); createEReference(typedElementEClass, TYPED_ELEMENT__TYPE_SPECIFIER); typeSpecifierEClass = createEClass(TYPE_SPECIFIER); createEReference(typeSpecifierEClass, TYPE_SPECIFIER__TYPE); createEReference(typeSpecifierEClass, TYPE_SPECIFIER__TYPE_ARGUMENTS); eventEClass = createEClass(EVENT); createEAttribute(eventEClass, EVENT__DIRECTION); enumerationTypeEClass = createEClass(ENUMERATION_TYPE); createEReference(enumerationTypeEClass, ENUMERATION_TYPE__ENUMERATOR); primitiveTypeEClass = createEClass(PRIMITIVE_TYPE); createEReference(primitiveTypeEClass, PRIMITIVE_TYPE__BASE_TYPE); complexTypeEClass = createEClass(COMPLEX_TYPE); createEReference(complexTypeEClass, COMPLEX_TYPE__FEATURES); createEReference(complexTypeEClass, COMPLEX_TYPE__SUPER_TYPES); enumeratorEClass = createEClass(ENUMERATOR); createEReference(enumeratorEClass, ENUMERATOR__OWNING_ENUMERATION); createEAttribute(enumeratorEClass, ENUMERATOR__LITERAL_VALUE); typeConstraintEClass = createEClass(TYPE_CONSTRAINT); createEAttribute(typeConstraintEClass, TYPE_CONSTRAINT__VALUE); typeParameterEClass = createEClass(TYPE_PARAMETER); createEReference(typeParameterEClass, TYPE_PARAMETER__BOUND); genericElementEClass = createEClass(GENERIC_ELEMENT); createEReference(genericElementEClass, GENERIC_ELEMENT__TYPE_PARAMETERS); packageMemberEClass = createEClass(PACKAGE_MEMBER); createEAttribute(packageMemberEClass, PACKAGE_MEMBER__ID); createEReference(packageMemberEClass, PACKAGE_MEMBER__ANNOTATIONS); rangeConstraintEClass = createEClass(RANGE_CONSTRAINT); createEAttribute(rangeConstraintEClass, RANGE_CONSTRAINT__LOWER_BOUND); createEAttribute(rangeConstraintEClass, RANGE_CONSTRAINT__UPPER_BOUND); domainEClass = createEClass(DOMAIN); createEAttribute(domainEClass, DOMAIN__DOMAIN_ID); typeAliasEClass = createEClass(TYPE_ALIAS); annotationEClass = createEClass(ANNOTATION); createEReference(annotationEClass, ANNOTATION__TYPE); annotatableElementEClass = createEClass(ANNOTATABLE_ELEMENT); arrayTypeSpecifierEClass = createEClass(ARRAY_TYPE_SPECIFIER); createEAttribute(arrayTypeSpecifierEClass, ARRAY_TYPE_SPECIFIER__SIZE); annotationTypeEClass = createEClass(ANNOTATION_TYPE); createEReference(annotationTypeEClass, ANNOTATION_TYPE__PROPERTIES); createEReference(annotationTypeEClass, ANNOTATION_TYPE__TARGETS); // Create enums directionEEnum = createEEnum(DIRECTION); } /** * <!-- 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 BasePackage theBasePackage = (BasePackage)EPackage.Registry.INSTANCE.getEPackage(BasePackage.eNS_URI); // Create type parameters // Set bounds for type parameters // Add supertypes to classes packageEClass.getESuperTypes().add(theBasePackage.getNamedElement()); typeEClass.getESuperTypes().add(this.getPackageMember()); declarationEClass.getESuperTypes().add(this.getTypedElement()); declarationEClass.getESuperTypes().add(theBasePackage.getNamedElement()); declarationEClass.getESuperTypes().add(this.getPackageMember()); operationEClass.getESuperTypes().add(this.getDeclaration()); operationEClass.getESuperTypes().add(this.getGenericElement()); propertyEClass.getESuperTypes().add(this.getDeclaration()); parameterEClass.getESuperTypes().add(this.getTypedElement()); parameterEClass.getESuperTypes().add(theBasePackage.getNamedElement()); parameterEClass.getESuperTypes().add(this.getAnnotatableElement()); eventEClass.getESuperTypes().add(this.getDeclaration()); enumerationTypeEClass.getESuperTypes().add(this.getPrimitiveType()); primitiveTypeEClass.getESuperTypes().add(this.getType()); complexTypeEClass.getESuperTypes().add(this.getType()); complexTypeEClass.getESuperTypes().add(this.getGenericElement()); enumeratorEClass.getESuperTypes().add(this.getDeclaration()); typeParameterEClass.getESuperTypes().add(this.getType()); genericElementEClass.getESuperTypes().add(theBasePackage.getNamedElement()); packageMemberEClass.getESuperTypes().add(theBasePackage.getNamedElement()); packageMemberEClass.getESuperTypes().add(this.getAnnotatableElement()); rangeConstraintEClass.getESuperTypes().add(this.getTypeConstraint()); typeAliasEClass.getESuperTypes().add(this.getTypedElement()); typeAliasEClass.getESuperTypes().add(this.getType()); arrayTypeSpecifierEClass.getESuperTypes().add(this.getTypeSpecifier()); annotationTypeEClass.getESuperTypes().add(this.getType()); // Initialize classes and features; add operations and parameters initEClass(packageEClass, org.yakindu.base.types.Package.class, "Package", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getPackage_Member(), this.getPackageMember(), null, "member", null, 0, -1, org.yakindu.base.types.Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getPackage_Domain(), this.getDomain(), null, "domain", null, 0, 1, org.yakindu.base.types.Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getPackage_Import(), this.getPackage(), null, "import", null, 0, -1, org.yakindu.base.types.Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(typeEClass, Type.class, "Type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getType_Constraint(), this.getTypeConstraint(), null, "constraint", null, 0, -1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getType_Abstract(), ecorePackage.getEBoolean(), "abstract", null, 0, 1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getType_Visible(), ecorePackage.getEBoolean(), "visible", "true", 0, 1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); addEOperation(typeEClass, this.getType(), "getOriginType", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(declarationEClass, Declaration.class, "Declaration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(operationEClass, Operation.class, "Operation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getOperation_Parameters(), this.getParameter(), this.getParameter_OwningOperation(), "parameters", null, 0, -1, Operation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getOperation_Variadic(), ecorePackage.getEBoolean(), "variadic", null, 0, 1, Operation.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); addEOperation(operationEClass, ecorePackage.getEInt(), "getVarArgIndex", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(propertyEClass, Property.class, "Property", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getProperty_Const(), ecorePackage.getEBoolean(), "const", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getProperty_Readonly(), ecorePackage.getEBoolean(), "readonly", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getProperty_External(), ecorePackage.getEBoolean(), "external", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(parameterEClass, Parameter.class, "Parameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getParameter_OwningOperation(), this.getOperation(), this.getOperation_Parameters(), "owningOperation", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getParameter_VarArgs(), ecorePackage.getEBoolean(), "varArgs", "false", 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getParameter_Optional(), ecorePackage.getEBoolean(), "optional", "false", 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getParameter_Annotations(), this.getAnnotation(), null, "annotations", null, 0, -1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(typedElementEClass, TypedElement.class, "TypedElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getTypedElement_Type(), this.getType(), null, "type", null, 0, 1, TypedElement.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); initEReference(getTypedElement_TypeSpecifier(), this.getTypeSpecifier(), null, "typeSpecifier", 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(typeSpecifierEClass, TypeSpecifier.class, "TypeSpecifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getTypeSpecifier_Type(), this.getType(), null, "type", null, 0, 1, TypeSpecifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getTypeSpecifier_TypeArguments(), this.getTypeSpecifier(), null, "typeArguments", null, 0, -1, TypeSpecifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(eventEClass, Event.class, "Event", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getEvent_Direction(), this.getDirection(), "direction", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(enumerationTypeEClass, EnumerationType.class, "EnumerationType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getEnumerationType_Enumerator(), this.getEnumerator(), this.getEnumerator_OwningEnumeration(), "enumerator", null, 0, -1, EnumerationType.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); initEReference(getPrimitiveType_BaseType(), this.getPrimitiveType(), null, "baseType", null, 0, 1, PrimitiveType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(complexTypeEClass, ComplexType.class, "ComplexType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getComplexType_Features(), this.getDeclaration(), null, "features", null, 0, -1, ComplexType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getComplexType_SuperTypes(), this.getComplexType(), null, "superTypes", null, 0, -1, ComplexType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); addEOperation(complexTypeEClass, this.getDeclaration(), "getAllFeatures", 0, -1, IS_UNIQUE, IS_ORDERED); initEClass(enumeratorEClass, Enumerator.class, "Enumerator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getEnumerator_OwningEnumeration(), this.getEnumerationType(), this.getEnumerationType_Enumerator(), "owningEnumeration", null, 0, 1, Enumerator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getEnumerator_LiteralValue(), ecorePackage.getEInt(), "literalValue", null, 0, 1, Enumerator.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); initEClass(typeConstraintEClass, TypeConstraint.class, "TypeConstraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getTypeConstraint_Value(), ecorePackage.getEJavaObject(), "value", null, 0, 1, TypeConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(typeParameterEClass, TypeParameter.class, "TypeParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getTypeParameter_Bound(), this.getType(), null, "bound", null, 0, 1, TypeParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(genericElementEClass, GenericElement.class, "GenericElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getGenericElement_TypeParameters(), this.getTypeParameter(), null, "typeParameters", null, 0, -1, GenericElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(packageMemberEClass, PackageMember.class, "PackageMember", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getPackageMember_Id(), ecorePackage.getEString(), "id", null, 0, 1, PackageMember.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); initEReference(getPackageMember_Annotations(), this.getAnnotation(), null, "annotations", null, 0, -1, PackageMember.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(rangeConstraintEClass, RangeConstraint.class, "RangeConstraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getRangeConstraint_LowerBound(), ecorePackage.getELong(), "lowerBound", null, 0, 1, RangeConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getRangeConstraint_UpperBound(), ecorePackage.getELong(), "upperBound", null, 0, 1, RangeConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(domainEClass, Domain.class, "Domain", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getDomain_DomainID(), ecorePackage.getEString(), "domainID", null, 0, 1, Domain.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(typeAliasEClass, TypeAlias.class, "TypeAlias", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(annotationEClass, Annotation.class, "Annotation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getAnnotation_Type(), this.getAnnotationType(), null, "type", null, 0, 1, Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(annotatableElementEClass, AnnotatableElement.class, "AnnotatableElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); addEOperation(annotatableElementEClass, this.getAnnotation(), "getAnnotations", 0, -1, IS_UNIQUE, IS_ORDERED); EOperation op = addEOperation(annotatableElementEClass, this.getAnnotation(), "getAnnotationOfType", 0, 1, IS_UNIQUE, IS_ORDERED); addEParameter(op, ecorePackage.getEString(), "typeName", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(arrayTypeSpecifierEClass, ArrayTypeSpecifier.class, "ArrayTypeSpecifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getArrayTypeSpecifier_Size(), ecorePackage.getEInt(), "size", null, 0, 1, ArrayTypeSpecifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); addEOperation(arrayTypeSpecifierEClass, this.getType(), "getElementType", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(annotationTypeEClass, AnnotationType.class, "AnnotationType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getAnnotationType_Properties(), this.getProperty(), null, "properties", null, 0, -1, AnnotationType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getAnnotationType_Targets(), ecorePackage.getEObject(), null, "targets", null, 0, -1, AnnotationType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); // Initialize enums and add enum literals initEEnum(directionEEnum, Direction.class, "Direction"); addEEnumLiteral(directionEEnum, Direction.LOCAL); addEEnumLiteral(directionEEnum, Direction.IN); addEEnumLiteral(directionEEnum, Direction.OUT); // Create resource createResource(eNS_URI); } } // TypesPackageImpl