/** * <copyright> * </copyright> * * $Id$ */ package de.tub.tfs.henshin.analysis.impl; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EEnum; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.impl.EPackageImpl; import org.eclipse.emf.henshin.model.HenshinPackage; import org.eclipse.emf.henshin.model.impl.HenshinPackageImpl; import de.tub.tfs.henshin.analysis.AnalysisFactory; import de.tub.tfs.henshin.analysis.AnalysisPackage; import de.tub.tfs.henshin.analysis.CausalityType; import de.tub.tfs.henshin.analysis.CriticalPair; import de.tub.tfs.henshin.analysis.CriticalPairType; /** * <!-- begin-user-doc --> * An implementation of the model <b>Package</b>. * <!-- end-user-doc --> * @generated */ public class AnalysisPackageImpl extends EPackageImpl implements AnalysisPackage { /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass criticalPairEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EEnum causalityTypeEEnum = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EEnum criticalPairTypeEEnum = 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 de.tub.tfs.henshin.analysis.AnalysisPackage#eNS_URI * @see #init() * @generated */ private AnalysisPackageImpl() { super(eNS_URI, AnalysisFactory.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 AnalysisPackage#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 AnalysisPackage init() { if (isInited) return (AnalysisPackage)EPackage.Registry.INSTANCE.getEPackage(AnalysisPackage.eNS_URI); // Obtain or create and register package AnalysisPackageImpl theAnalysisPackage = (AnalysisPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof AnalysisPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new AnalysisPackageImpl()); isInited = true; // Obtain or create and register interdependencies HenshinPackageImpl theHenshinPackage = (HenshinPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(HenshinPackage.eNS_URI) instanceof HenshinPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(HenshinPackage.eNS_URI) : HenshinPackage.eINSTANCE); // Create package meta-data objects theAnalysisPackage.createPackageContents(); theHenshinPackage.createPackageContents(); // Initialize created meta-data theAnalysisPackage.initializePackageContents(); theHenshinPackage.initializePackageContents(); // Mark meta-data to indicate it can't be changed theAnalysisPackage.freeze(); // Update the registry and return the package EPackage.Registry.INSTANCE.put(AnalysisPackage.eNS_URI, theAnalysisPackage); return theAnalysisPackage; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getCriticalPair() { return criticalPairEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getCriticalPair_Type() { return (EAttribute)criticalPairEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getCriticalPair_Rule1() { return (EReference)criticalPairEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getCriticalPair_Rule2() { return (EReference)criticalPairEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getCriticalPair_SourceUnit() { return (EReference)criticalPairEClass.getEStructuralFeatures().get(3); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getCriticalPair_TargetUnit() { return (EReference)criticalPairEClass.getEStructuralFeatures().get(4); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getCriticalPair_Overlapping() { return (EReference)criticalPairEClass.getEStructuralFeatures().get(5); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getCriticalPair_MappingsOverlappingToRule1() { return (EReference)criticalPairEClass.getEStructuralFeatures().get(6); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getCriticalPair_MappingsOverlappingToRule2() { return (EReference)criticalPairEClass.getEStructuralFeatures().get(7); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getCriticalPair_MappingsRule1ToRule2() { return (EReference)criticalPairEClass.getEStructuralFeatures().get(8); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getCriticalPair_CriticalObjects() { return (EReference)criticalPairEClass.getEStructuralFeatures().get(9); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EEnum getCausalityType() { return causalityTypeEEnum; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EEnum getCriticalPairType() { return criticalPairTypeEEnum; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public AnalysisFactory getAnalysisFactory() { return (AnalysisFactory)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 criticalPairEClass = createEClass(CRITICAL_PAIR); createEAttribute(criticalPairEClass, CRITICAL_PAIR__TYPE); createEReference(criticalPairEClass, CRITICAL_PAIR__RULE1); createEReference(criticalPairEClass, CRITICAL_PAIR__RULE2); createEReference(criticalPairEClass, CRITICAL_PAIR__SOURCE_UNIT); createEReference(criticalPairEClass, CRITICAL_PAIR__TARGET_UNIT); createEReference(criticalPairEClass, CRITICAL_PAIR__OVERLAPPING); createEReference(criticalPairEClass, CRITICAL_PAIR__MAPPINGS_OVERLAPPING_TO_RULE1); createEReference(criticalPairEClass, CRITICAL_PAIR__MAPPINGS_OVERLAPPING_TO_RULE2); createEReference(criticalPairEClass, CRITICAL_PAIR__MAPPINGS_RULE1_TO_RULE2); createEReference(criticalPairEClass, CRITICAL_PAIR__CRITICAL_OBJECTS); // Create enums causalityTypeEEnum = createEEnum(CAUSALITY_TYPE); criticalPairTypeEEnum = createEEnum(CRITICAL_PAIR_TYPE); } /** * <!-- 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 HenshinPackage theHenshinPackage = (HenshinPackage)EPackage.Registry.INSTANCE.getEPackage(HenshinPackage.eNS_URI); // Create type parameters // Set bounds for type parameters // Add supertypes to classes // Initialize classes and features; add operations and parameters initEClass(criticalPairEClass, CriticalPair.class, "CriticalPair", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getCriticalPair_Type(), this.getCriticalPairType(), "type", "0", 0, 1, CriticalPair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getCriticalPair_Rule1(), theHenshinPackage.getRule(), null, "rule1", null, 0, 1, CriticalPair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getCriticalPair_Rule2(), theHenshinPackage.getRule(), null, "rule2", null, 0, 1, CriticalPair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getCriticalPair_SourceUnit(), theHenshinPackage.getUnit(), null, "sourceUnit", null, 0, 1, CriticalPair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getCriticalPair_TargetUnit(), theHenshinPackage.getUnit(), null, "targetUnit", null, 0, 1, CriticalPair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getCriticalPair_Overlapping(), theHenshinPackage.getGraph(), null, "overlapping", null, 0, 1, CriticalPair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getCriticalPair_MappingsOverlappingToRule1(), theHenshinPackage.getMapping(), null, "mappingsOverlappingToRule1", null, 0, -1, CriticalPair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getCriticalPair_MappingsOverlappingToRule2(), theHenshinPackage.getMapping(), null, "mappingsOverlappingToRule2", null, 0, -1, CriticalPair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getCriticalPair_MappingsRule1ToRule2(), theHenshinPackage.getMapping(), null, "mappingsRule1ToRule2", null, 0, -1, CriticalPair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getCriticalPair_CriticalObjects(), ecorePackage.getEObject(), null, "criticalObjects", null, 0, -1, CriticalPair.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(causalityTypeEEnum, CausalityType.class, "CausalityType"); addEEnumLiteral(causalityTypeEEnum, CausalityType.INITIALIZATION); addEEnumLiteral(causalityTypeEEnum, CausalityType.CONFLICT); addEEnumLiteral(causalityTypeEEnum, CausalityType.DEPENDENCY_ALONG_CONTROLFLOW); addEEnumLiteral(causalityTypeEEnum, CausalityType.DEPENDENCY_AGAINST_CONTROLFLOW); initEEnum(criticalPairTypeEEnum, CriticalPairType.class, "CriticalPairType"); addEEnumLiteral(criticalPairTypeEEnum, CriticalPairType.DELETE_USE_CONFLICT); addEEnumLiteral(criticalPairTypeEEnum, CriticalPairType.DELETE_NEED_CONFLICT); addEEnumLiteral(criticalPairTypeEEnum, CriticalPairType.PRODUCE_FORBID_CONFLICT); addEEnumLiteral(criticalPairTypeEEnum, CriticalPairType.PRODUCE_EDGE_DELTE_NODE_CONFLICT); addEEnumLiteral(criticalPairTypeEEnum, CriticalPairType.CHANGE_USE_ATTR_CONFLICT); addEEnumLiteral(criticalPairTypeEEnum, CriticalPairType.CHANGE_NEED_ATTR_CONFLICT); addEEnumLiteral(criticalPairTypeEEnum, CriticalPairType.CHANGE_FORBID_ATTR_CONFLICT); addEEnumLiteral(criticalPairTypeEEnum, CriticalPairType.DELETE_FORBID_DEPENDENCY); addEEnumLiteral(criticalPairTypeEEnum, CriticalPairType.PRODUCE_USE_DEPENDENCY); addEEnumLiteral(criticalPairTypeEEnum, CriticalPairType.PRODUCE_DELETE_DEPENDENCY); addEEnumLiteral(criticalPairTypeEEnum, CriticalPairType.PRODUCE_NEED_DEPENDENCY); addEEnumLiteral(criticalPairTypeEEnum, CriticalPairType.CHANGE_USE_ATTR_DEPENDENCY); addEEnumLiteral(criticalPairTypeEEnum, CriticalPairType.CHANGE_FORBID_ATTR_DEPENDENCY); // Create resource createResource(eNS_URI); } } //AnalysisPackageImpl