| /***************************************************************************** |
| * Copyright (c) 2009 CEA LIST. |
| * |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Yann Tanguy (CEA LIST) yann.tanguy@cea.fr - Initial API and implementation |
| * |
| *****************************************************************************/ |
| package org.eclipse.papyrus.sysml.portandflows.internal.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.eclipse.papyrus.sysml.SysmlPackage; |
| import org.eclipse.papyrus.sysml.activities.ActivitiesPackage; |
| import org.eclipse.papyrus.sysml.activities.internal.impl.ActivitiesPackageImpl; |
| import org.eclipse.papyrus.sysml.allocations.AllocationsPackage; |
| import org.eclipse.papyrus.sysml.allocations.internal.impl.AllocationsPackageImpl; |
| import org.eclipse.papyrus.sysml.blocks.BlocksPackage; |
| import org.eclipse.papyrus.sysml.blocks.internal.impl.BlocksPackageImpl; |
| import org.eclipse.papyrus.sysml.constraints.ConstraintsPackage; |
| import org.eclipse.papyrus.sysml.constraints.internal.impl.ConstraintsPackageImpl; |
| import org.eclipse.papyrus.sysml.interactions.InteractionsPackage; |
| import org.eclipse.papyrus.sysml.interactions.internal.impl.InteractionsPackageImpl; |
| import org.eclipse.papyrus.sysml.internal.impl.SysmlPackageImpl; |
| import org.eclipse.papyrus.sysml.modelelements.ModelelementsPackage; |
| import org.eclipse.papyrus.sysml.modelelements.internal.impl.ModelelementsPackageImpl; |
| import org.eclipse.papyrus.sysml.portandflows.FlowDirection; |
| import org.eclipse.papyrus.sysml.portandflows.FlowPort; |
| import org.eclipse.papyrus.sysml.portandflows.FlowProperty; |
| import org.eclipse.papyrus.sysml.portandflows.FlowSpecification; |
| import org.eclipse.papyrus.sysml.portandflows.ItemFlow; |
| import org.eclipse.papyrus.sysml.portandflows.PortandflowsFactory; |
| import org.eclipse.papyrus.sysml.portandflows.PortandflowsPackage; |
| import org.eclipse.papyrus.sysml.requirements.RequirementsPackage; |
| import org.eclipse.papyrus.sysml.requirements.internal.impl.RequirementsPackageImpl; |
| import org.eclipse.papyrus.sysml.statemachines.StatemachinesPackage; |
| import org.eclipse.papyrus.sysml.statemachines.internal.impl.StatemachinesPackageImpl; |
| import org.eclipse.papyrus.sysml.usecases.UsecasesPackage; |
| import org.eclipse.papyrus.sysml.usecases.internal.impl.UsecasesPackageImpl; |
| import org.eclipse.uml2.types.TypesPackage; |
| import org.eclipse.uml2.uml.UMLPackage; |
| import org.eclipse.uml2.uml.profile.standard.StandardPackage; |
| |
| /** |
| * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!-- |
| * end-user-doc --> |
| * |
| * @generated |
| */ |
| public class PortandflowsPackageImpl extends EPackageImpl implements PortandflowsPackage { |
| |
| /** |
| * <!-- 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 PortandflowsPackage#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 PortandflowsPackage init() { |
| if (isInited) { |
| return (PortandflowsPackage) EPackage.Registry.INSTANCE.getEPackage(PortandflowsPackage.eNS_URI); |
| } |
| |
| // Obtain or create and register package |
| PortandflowsPackageImpl thePortandflowsPackage = (PortandflowsPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof PortandflowsPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new PortandflowsPackageImpl()); |
| |
| isInited = true; |
| |
| // Initialize simple dependencies |
| StandardPackage.eINSTANCE.eClass(); |
| |
| // Obtain or create and register interdependencies |
| SysmlPackageImpl theSysmlPackage = (SysmlPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(SysmlPackage.eNS_URI) instanceof SysmlPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SysmlPackage.eNS_URI) : SysmlPackage.eINSTANCE); |
| ModelelementsPackageImpl theModelelementsPackage = (ModelelementsPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(ModelelementsPackage.eNS_URI) instanceof ModelelementsPackageImpl ? EPackage.Registry.INSTANCE |
| .getEPackage(ModelelementsPackage.eNS_URI) : ModelelementsPackage.eINSTANCE); |
| BlocksPackageImpl theBlocksPackage = (BlocksPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(BlocksPackage.eNS_URI) instanceof BlocksPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(BlocksPackage.eNS_URI) : BlocksPackage.eINSTANCE); |
| ConstraintsPackageImpl theConstraintsPackage = (ConstraintsPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(ConstraintsPackage.eNS_URI) instanceof ConstraintsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ConstraintsPackage.eNS_URI) |
| : ConstraintsPackage.eINSTANCE); |
| ActivitiesPackageImpl theActivitiesPackage = (ActivitiesPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(ActivitiesPackage.eNS_URI) instanceof ActivitiesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ActivitiesPackage.eNS_URI) |
| : ActivitiesPackage.eINSTANCE); |
| AllocationsPackageImpl theAllocationsPackage = (AllocationsPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(AllocationsPackage.eNS_URI) instanceof AllocationsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AllocationsPackage.eNS_URI) |
| : AllocationsPackage.eINSTANCE); |
| RequirementsPackageImpl theRequirementsPackage = (RequirementsPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(RequirementsPackage.eNS_URI) instanceof RequirementsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(RequirementsPackage.eNS_URI) |
| : RequirementsPackage.eINSTANCE); |
| InteractionsPackageImpl theInteractionsPackage = (InteractionsPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(InteractionsPackage.eNS_URI) instanceof InteractionsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(InteractionsPackage.eNS_URI) |
| : InteractionsPackage.eINSTANCE); |
| StatemachinesPackageImpl theStatemachinesPackage = (StatemachinesPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(StatemachinesPackage.eNS_URI) instanceof StatemachinesPackageImpl ? EPackage.Registry.INSTANCE |
| .getEPackage(StatemachinesPackage.eNS_URI) : StatemachinesPackage.eINSTANCE); |
| UsecasesPackageImpl theUsecasesPackage = (UsecasesPackageImpl) (EPackage.Registry.INSTANCE.getEPackage(UsecasesPackage.eNS_URI) instanceof UsecasesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(UsecasesPackage.eNS_URI) |
| : UsecasesPackage.eINSTANCE); |
| |
| // Create package meta-data objects |
| thePortandflowsPackage.createPackageContents(); |
| theSysmlPackage.createPackageContents(); |
| theModelelementsPackage.createPackageContents(); |
| theBlocksPackage.createPackageContents(); |
| theConstraintsPackage.createPackageContents(); |
| theActivitiesPackage.createPackageContents(); |
| theAllocationsPackage.createPackageContents(); |
| theRequirementsPackage.createPackageContents(); |
| theInteractionsPackage.createPackageContents(); |
| theStatemachinesPackage.createPackageContents(); |
| theUsecasesPackage.createPackageContents(); |
| |
| // Initialize created meta-data |
| thePortandflowsPackage.initializePackageContents(); |
| theSysmlPackage.initializePackageContents(); |
| theModelelementsPackage.initializePackageContents(); |
| theBlocksPackage.initializePackageContents(); |
| theConstraintsPackage.initializePackageContents(); |
| theActivitiesPackage.initializePackageContents(); |
| theAllocationsPackage.initializePackageContents(); |
| theRequirementsPackage.initializePackageContents(); |
| theInteractionsPackage.initializePackageContents(); |
| theStatemachinesPackage.initializePackageContents(); |
| theUsecasesPackage.initializePackageContents(); |
| |
| // Mark meta-data to indicate it can't be changed |
| thePortandflowsPackage.freeze(); |
| |
| |
| // Update the registry and return the package |
| EPackage.Registry.INSTANCE.put(PortandflowsPackage.eNS_URI, thePortandflowsPackage); |
| return thePortandflowsPackage; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| private EClass flowPortEClass = null; |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| private EClass flowPropertyEClass = null; |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| private EClass flowSpecificationEClass = null; |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| private EClass itemFlowEClass = null; |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| private EEnum flowDirectionEEnum = null; |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| private boolean isCreated = false; |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| private boolean isInitialized = false; |
| |
| /** |
| * 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.eclipse.papyrus.sysml.portandflows.PortandflowsPackage#eNS_URI |
| * @see #init() |
| * @generated |
| */ |
| private PortandflowsPackageImpl() { |
| super(eNS_URI, PortandflowsFactory.eINSTANCE); |
| } |
| |
| /** |
| * 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 |
| flowPortEClass = createEClass(FLOW_PORT); |
| createEReference(flowPortEClass, FLOW_PORT__BASE_PORT); |
| createEAttribute(flowPortEClass, FLOW_PORT__IS_ATOMIC); |
| createEAttribute(flowPortEClass, FLOW_PORT__IS_CONJUGATED); |
| createEAttribute(flowPortEClass, FLOW_PORT__DIRECTION); |
| createEOperation(flowPortEClass, FLOW_PORT___GET_ICON); |
| |
| flowPropertyEClass = createEClass(FLOW_PROPERTY); |
| createEReference(flowPropertyEClass, FLOW_PROPERTY__BASE_PROPERTY); |
| createEAttribute(flowPropertyEClass, FLOW_PROPERTY__DIRECTION); |
| createEOperation(flowPropertyEClass, FLOW_PROPERTY___GET_ICON); |
| |
| flowSpecificationEClass = createEClass(FLOW_SPECIFICATION); |
| createEReference(flowSpecificationEClass, FLOW_SPECIFICATION__BASE_INTERFACE); |
| |
| itemFlowEClass = createEClass(ITEM_FLOW); |
| createEReference(itemFlowEClass, ITEM_FLOW__BASE_INFORMATION_FLOW); |
| createEReference(itemFlowEClass, ITEM_FLOW__ITEM_PROPERTY); |
| |
| // Create enums |
| flowDirectionEEnum = createEEnum(FLOW_DIRECTION); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EEnum getFlowDirection() { |
| return flowDirectionEEnum; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EClass getFlowPort() { |
| return flowPortEClass; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EReference getFlowPort_Base_Port() { |
| return (EReference) flowPortEClass.getEStructuralFeatures().get(0); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EAttribute getFlowPort_Direction() { |
| return (EAttribute) flowPortEClass.getEStructuralFeatures().get(3); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EOperation getFlowPort__GetIcon() { |
| return flowPortEClass.getEOperations().get(0); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EAttribute getFlowPort_IsAtomic() { |
| return (EAttribute) flowPortEClass.getEStructuralFeatures().get(1); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EAttribute getFlowPort_IsConjugated() { |
| return (EAttribute) flowPortEClass.getEStructuralFeatures().get(2); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EClass getFlowProperty() { |
| return flowPropertyEClass; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EReference getFlowProperty_Base_Property() { |
| return (EReference) flowPropertyEClass.getEStructuralFeatures().get(0); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EAttribute getFlowProperty_Direction() { |
| return (EAttribute) flowPropertyEClass.getEStructuralFeatures().get(1); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EOperation getFlowProperty__GetIcon() { |
| return flowPropertyEClass.getEOperations().get(0); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EClass getFlowSpecification() { |
| return flowSpecificationEClass; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EReference getFlowSpecification_Base_Interface() { |
| return (EReference) flowSpecificationEClass.getEStructuralFeatures().get(0); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EClass getItemFlow() { |
| return itemFlowEClass; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EReference getItemFlow_Base_InformationFlow() { |
| return (EReference) itemFlowEClass.getEStructuralFeatures().get(0); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public EReference getItemFlow_ItemProperty() { |
| return (EReference) itemFlowEClass.getEStructuralFeatures().get(1); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> <!-- end-user-doc --> |
| * |
| * @generated |
| */ |
| public PortandflowsFactory getPortandflowsFactory() { |
| return (PortandflowsFactory) getEFactoryInstance(); |
| } |
| |
| /** |
| * 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 |
| UMLPackage theUMLPackage = (UMLPackage) EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI); |
| TypesPackage theTypesPackage = (TypesPackage) EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI); |
| |
| // Create type parameters |
| |
| // Set bounds for type parameters |
| |
| // Add supertypes to classes |
| |
| // Initialize classes, features, and operations; add parameters |
| initEClass(flowPortEClass, FlowPort.class, "FlowPort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); |
| initEReference(getFlowPort_Base_Port(), theUMLPackage.getPort(), null, "base_Port", null, 1, 1, FlowPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); |
| initEAttribute(getFlowPort_IsAtomic(), theTypesPackage.getBoolean(), "isAtomic", "false", 1, 1, FlowPort.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED); |
| initEAttribute(getFlowPort_IsConjugated(), theTypesPackage.getBoolean(), "isConjugated", null, 0, 1, FlowPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); |
| initEAttribute(getFlowPort_Direction(), this.getFlowDirection(), "direction", "inout", 1, 1, FlowPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); |
| |
| initEOperation(getFlowPort__GetIcon(), theUMLPackage.getImage(), "getIcon", 1, 1, IS_UNIQUE, !IS_ORDERED); |
| |
| initEClass(flowPropertyEClass, FlowProperty.class, "FlowProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); |
| initEReference(getFlowProperty_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, FlowProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, |
| !IS_ORDERED); |
| initEAttribute(getFlowProperty_Direction(), this.getFlowDirection(), "direction", "inout", 1, 1, FlowProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); |
| |
| initEOperation(getFlowProperty__GetIcon(), theUMLPackage.getImage(), "getIcon", 1, 1, IS_UNIQUE, !IS_ORDERED); |
| |
| initEClass(flowSpecificationEClass, FlowSpecification.class, "FlowSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); |
| initEReference(getFlowSpecification_Base_Interface(), theUMLPackage.getInterface(), null, "base_Interface", null, 1, 1, FlowSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, |
| !IS_DERIVED, !IS_ORDERED); |
| |
| initEClass(itemFlowEClass, ItemFlow.class, "ItemFlow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); |
| initEReference(getItemFlow_Base_InformationFlow(), theUMLPackage.getInformationFlow(), null, "base_InformationFlow", null, 1, 1, ItemFlow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, |
| !IS_DERIVED, !IS_ORDERED); |
| initEReference(getItemFlow_ItemProperty(), theUMLPackage.getProperty(), null, "itemProperty", null, 0, 1, ItemFlow.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(flowDirectionEEnum, FlowDirection.class, "FlowDirection"); |
| addEEnumLiteral(flowDirectionEEnum, FlowDirection.IN); |
| addEEnumLiteral(flowDirectionEEnum, FlowDirection.OUT); |
| addEEnumLiteral(flowDirectionEEnum, FlowDirection.INOUT); |
| } |
| |
| } // PortandflowsPackageImpl |