blob: 9b7a852258919fa845581b6bcc0d8524d2c7c331 [file] [log] [blame]
/**
* Copyright (c) 2018 CEA
*
* 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:
* Jérémie Tatibouet (CEA) jeremie.tatibouet@cea.fr - Initial API and implementation
* Benoit Maggi (CEA) benoit.maggi@cea.fr - Initial API and implementation
*
*/
package org.eclipse.papyrus.iotml.sensinact.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.EcorePackage;
import org.eclipse.emf.ecore.impl.EPackageImpl;
import org.eclipse.papyrus.MARTE.MARTEPackage;
import org.eclipse.papyrus.MARTE_Library.BasicNFP_Types.BasicNFP_TypesPackage;
import org.eclipse.papyrus.MARTE_Library.GRM_BasicTypes.GRM_BasicTypesPackage;
import org.eclipse.papyrus.MARTE_Library.MARTE_DataTypes.MARTE_DataTypesPackage;
import org.eclipse.papyrus.MARTE_Library.MARTE_PrimitivesTypes.MARTE_PrimitivesTypesPackage;
import org.eclipse.papyrus.MARTE_Library.MeasurementUnits.MeasurementUnitsPackage;
import org.eclipse.papyrus.MARTE_Library.RS_Library.RS_LibraryPackage;
import org.eclipse.papyrus.MARTE_Library.TimeLibrary.TimeLibraryPackage;
import org.eclipse.papyrus.MARTE_Library.TimeTypesLibrary.TimeTypesLibraryPackage;
import org.eclipse.papyrus.iotml.animate.AnimatePackage;
import org.eclipse.papyrus.iotml.animate.impl.AnimatePackageImpl;
import org.eclipse.papyrus.iotml.hardware.actuator.ActuatorPackage;
import org.eclipse.papyrus.iotml.hardware.actuator.impl.ActuatorPackageImpl;
import org.eclipse.papyrus.iotml.hardware.core.CorePackage;
import org.eclipse.papyrus.iotml.hardware.core.impl.CorePackageImpl;
import org.eclipse.papyrus.iotml.hardware.network.NetworkPackage;
import org.eclipse.papyrus.iotml.hardware.network.impl.NetworkPackageImpl;
import org.eclipse.papyrus.iotml.hardware.sensor.SensorPackage;
import org.eclipse.papyrus.iotml.hardware.sensor.impl.SensorPackageImpl;
import org.eclipse.papyrus.iotml.hybrid.HybridPackage;
import org.eclipse.papyrus.iotml.hybrid.impl.HybridPackageImpl;
import org.eclipse.papyrus.iotml.s3pml.hardware.HardwarePackage;
import org.eclipse.papyrus.iotml.s3pml.hardware.impl.HardwarePackageImpl;
import org.eclipse.papyrus.iotml.s3pml.hardware.store.StorePackage;
import org.eclipse.papyrus.iotml.s3pml.hardware.store.impl.StorePackageImpl;
import org.eclipse.papyrus.iotml.s3pml.protocol.ProtocolPackage;
import org.eclipse.papyrus.iotml.s3pml.protocol.impl.ProtocolPackageImpl;
import org.eclipse.papyrus.iotml.s3pml.software.SoftwarePackage;
import org.eclipse.papyrus.iotml.s3pml.software.impl.SoftwarePackageImpl;
import org.eclipse.papyrus.iotml.sensinact.AccessMethod;
import org.eclipse.papyrus.iotml.sensinact.AccessMethodType;
import org.eclipse.papyrus.iotml.sensinact.Action;
import org.eclipse.papyrus.iotml.sensinact.Attribute;
import org.eclipse.papyrus.iotml.sensinact.Gateway;
import org.eclipse.papyrus.iotml.sensinact.Metadata;
import org.eclipse.papyrus.iotml.sensinact.Parameter;
import org.eclipse.papyrus.iotml.sensinact.Property;
import org.eclipse.papyrus.iotml.sensinact.Resource;
import org.eclipse.papyrus.iotml.sensinact.SensinactFactory;
import org.eclipse.papyrus.iotml.sensinact.SensinactPackage;
import org.eclipse.papyrus.iotml.sensinact.SensorData;
import org.eclipse.papyrus.iotml.sensinact.Service;
import org.eclipse.papyrus.iotml.sensinact.ServiceProvider;
import org.eclipse.papyrus.iotml.sensinact.StateVariable;
import org.eclipse.papyrus.iotml.sensinact.Studio;
import org.eclipse.papyrus.iotml.sensinact.TypedElement;
import org.eclipse.papyrus.iotml.software.artefact.ArtefactPackage;
import org.eclipse.papyrus.iotml.software.artefact.impl.ArtefactPackageImpl;
import org.eclipse.papyrus.iotml.software.core.structure.StructurePackage;
import org.eclipse.papyrus.iotml.software.core.structure.impl.StructurePackageImpl;
import org.eclipse.papyrus.iotml.software.resource.ResourcePackage;
import org.eclipse.papyrus.iotml.software.resource.impl.ResourcePackageImpl;
import org.eclipse.papyrus.iotml.wot.WoTPackage;
import org.eclipse.papyrus.iotml.wot.impl.WoTPackageImpl;
import org.eclipse.papyrus.sysml14.sysmlPackage;
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 SensinactPackageImpl extends EPackageImpl implements SensinactPackage {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass typedElementEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass studioEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass gatewayEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass serviceProviderEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass serviceEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass resourceEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass accessMethodEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass parameterEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass attributeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass metadataEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass propertyEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass sensorDataEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass stateVariableEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass actionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EEnum accessMethodTypeEEnum = 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.eclipse.papyrus.iotml.sensinact.SensinactPackage#eNS_URI
* @see #init()
* @generated
*/
private SensinactPackageImpl() {
super(eNS_URI, SensinactFactory.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 SensinactPackage#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 SensinactPackage init() {
if (isInited) return (SensinactPackage)EPackage.Registry.INSTANCE.getEPackage(SensinactPackage.eNS_URI);
// Obtain or create and register package
Object registeredSensinactPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
SensinactPackageImpl theSensinactPackage = registeredSensinactPackage instanceof SensinactPackageImpl ? (SensinactPackageImpl)registeredSensinactPackage : new SensinactPackageImpl();
isInited = true;
// Initialize simple dependencies
EcorePackage.eINSTANCE.eClass();
MARTEPackage.eINSTANCE.eClass();
MARTE_PrimitivesTypesPackage.eINSTANCE.eClass();
MeasurementUnitsPackage.eINSTANCE.eClass();
GRM_BasicTypesPackage.eINSTANCE.eClass();
BasicNFP_TypesPackage.eINSTANCE.eClass();
MARTE_DataTypesPackage.eINSTANCE.eClass();
TimeTypesLibraryPackage.eINSTANCE.eClass();
TimeLibraryPackage.eINSTANCE.eClass();
RS_LibraryPackage.eINSTANCE.eClass();
sysmlPackage.eINSTANCE.eClass();
TypesPackage.eINSTANCE.eClass();
UMLPackage.eINSTANCE.eClass();
StandardPackage.eINSTANCE.eClass();
// Obtain or create and register interdependencies
Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI);
AnimatePackageImpl theAnimatePackage = (AnimatePackageImpl)(registeredPackage instanceof AnimatePackageImpl ? registeredPackage : AnimatePackage.eINSTANCE);
registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ActuatorPackage.eNS_URI);
ActuatorPackageImpl theActuatorPackage = (ActuatorPackageImpl)(registeredPackage instanceof ActuatorPackageImpl ? registeredPackage : ActuatorPackage.eINSTANCE);
registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SensorPackage.eNS_URI);
SensorPackageImpl theSensorPackage = (SensorPackageImpl)(registeredPackage instanceof SensorPackageImpl ? registeredPackage : SensorPackage.eINSTANCE);
registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI);
NetworkPackageImpl theNetworkPackage = (NetworkPackageImpl)(registeredPackage instanceof NetworkPackageImpl ? registeredPackage : NetworkPackage.eINSTANCE);
registeredPackage = EPackage.Registry.INSTANCE.getEPackage(CorePackage.eNS_URI);
CorePackageImpl theCorePackage = (CorePackageImpl)(registeredPackage instanceof CorePackageImpl ? registeredPackage : CorePackage.eINSTANCE);
registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftwarePackage.eNS_URI);
SoftwarePackageImpl theSoftwarePackage = (SoftwarePackageImpl)(registeredPackage instanceof SoftwarePackageImpl ? registeredPackage : SoftwarePackage.eINSTANCE);
registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ProtocolPackage.eNS_URI);
ProtocolPackageImpl theProtocolPackage = (ProtocolPackageImpl)(registeredPackage instanceof ProtocolPackageImpl ? registeredPackage : ProtocolPackage.eINSTANCE);
registeredPackage = EPackage.Registry.INSTANCE.getEPackage(HardwarePackage.eNS_URI);
HardwarePackageImpl theHardwarePackage = (HardwarePackageImpl)(registeredPackage instanceof HardwarePackageImpl ? registeredPackage : HardwarePackage.eINSTANCE);
registeredPackage = EPackage.Registry.INSTANCE.getEPackage(StorePackage.eNS_URI);
StorePackageImpl theStorePackage = (StorePackageImpl)(registeredPackage instanceof StorePackageImpl ? registeredPackage : StorePackage.eINSTANCE);
registeredPackage = EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI);
StructurePackageImpl theStructurePackage = (StructurePackageImpl)(registeredPackage instanceof StructurePackageImpl ? registeredPackage : StructurePackage.eINSTANCE);
registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI);
ResourcePackageImpl theResourcePackage = (ResourcePackageImpl)(registeredPackage instanceof ResourcePackageImpl ? registeredPackage : ResourcePackage.eINSTANCE);
registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI);
ArtefactPackageImpl theArtefactPackage = (ArtefactPackageImpl)(registeredPackage instanceof ArtefactPackageImpl ? registeredPackage : ArtefactPackage.eINSTANCE);
registeredPackage = EPackage.Registry.INSTANCE.getEPackage(HybridPackage.eNS_URI);
HybridPackageImpl theHybridPackage = (HybridPackageImpl)(registeredPackage instanceof HybridPackageImpl ? registeredPackage : HybridPackage.eINSTANCE);
registeredPackage = EPackage.Registry.INSTANCE.getEPackage(WoTPackage.eNS_URI);
WoTPackageImpl theWoTPackage = (WoTPackageImpl)(registeredPackage instanceof WoTPackageImpl ? registeredPackage : WoTPackage.eINSTANCE);
// Create package meta-data objects
theSensinactPackage.createPackageContents();
theAnimatePackage.createPackageContents();
theActuatorPackage.createPackageContents();
theSensorPackage.createPackageContents();
theNetworkPackage.createPackageContents();
theCorePackage.createPackageContents();
theSoftwarePackage.createPackageContents();
theProtocolPackage.createPackageContents();
theHardwarePackage.createPackageContents();
theStorePackage.createPackageContents();
theStructurePackage.createPackageContents();
theResourcePackage.createPackageContents();
theArtefactPackage.createPackageContents();
theHybridPackage.createPackageContents();
theWoTPackage.createPackageContents();
// Initialize created meta-data
theSensinactPackage.initializePackageContents();
theAnimatePackage.initializePackageContents();
theActuatorPackage.initializePackageContents();
theSensorPackage.initializePackageContents();
theNetworkPackage.initializePackageContents();
theCorePackage.initializePackageContents();
theSoftwarePackage.initializePackageContents();
theProtocolPackage.initializePackageContents();
theHardwarePackage.initializePackageContents();
theStorePackage.initializePackageContents();
theStructurePackage.initializePackageContents();
theResourcePackage.initializePackageContents();
theArtefactPackage.initializePackageContents();
theHybridPackage.initializePackageContents();
theWoTPackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
theSensinactPackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(SensinactPackage.eNS_URI, theSensinactPackage);
return theSensinactPackage;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getTypedElement() {
return typedElementEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getTypedElement_Value() {
return (EReference)typedElementEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getStudio() {
return studioEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getStudio_Gateways() {
return (EReference)studioEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getGateway() {
return gatewayEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getGateway_Devices() {
return (EReference)gatewayEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getServiceProvider() {
return serviceProviderEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getServiceProvider_FriendlyName() {
return (EAttribute)serviceProviderEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getServiceProvider_Services() {
return (EReference)serviceProviderEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getService() {
return serviceEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getService_FriendlyName() {
return (EAttribute)serviceEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getService_Resources() {
return (EReference)serviceEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getResource() {
return resourceEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getResource_FriendlyName() {
return (EAttribute)resourceEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getResource_AccessMethods() {
return (EReference)resourceEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getResource_Attributes() {
return (EReference)resourceEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getAccessMethod() {
return accessMethodEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getAccessMethod_Type() {
return (EAttribute)accessMethodEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getAccessMethod_Parameters() {
return (EReference)accessMethodEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getAccessMethod_Base_Operation() {
return (EReference)accessMethodEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getParameter() {
return parameterEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getParameter_Base_Parameter() {
return (EReference)parameterEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getAttribute() {
return attributeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getAttribute_Metadata() {
return (EReference)attributeEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getAttribute_Base_Property() {
return (EReference)attributeEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getMetadata() {
return metadataEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getProperty() {
return propertyEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getSensorData() {
return sensorDataEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getStateVariable() {
return stateVariableEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getStateVariable_Modifier() {
return (EReference)stateVariableEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getAction() {
return actionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EEnum getAccessMethodType() {
return accessMethodTypeEEnum;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public SensinactFactory getSensinactFactory() {
return (SensinactFactory)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
typedElementEClass = createEClass(TYPED_ELEMENT);
createEReference(typedElementEClass, TYPED_ELEMENT__VALUE);
studioEClass = createEClass(STUDIO);
createEReference(studioEClass, STUDIO__GATEWAYS);
gatewayEClass = createEClass(GATEWAY);
createEReference(gatewayEClass, GATEWAY__DEVICES);
serviceProviderEClass = createEClass(SERVICE_PROVIDER);
createEAttribute(serviceProviderEClass, SERVICE_PROVIDER__FRIENDLY_NAME);
createEReference(serviceProviderEClass, SERVICE_PROVIDER__SERVICES);
serviceEClass = createEClass(SERVICE);
createEAttribute(serviceEClass, SERVICE__FRIENDLY_NAME);
createEReference(serviceEClass, SERVICE__RESOURCES);
resourceEClass = createEClass(RESOURCE);
createEAttribute(resourceEClass, RESOURCE__FRIENDLY_NAME);
createEReference(resourceEClass, RESOURCE__ACCESS_METHODS);
createEReference(resourceEClass, RESOURCE__ATTRIBUTES);
accessMethodEClass = createEClass(ACCESS_METHOD);
createEAttribute(accessMethodEClass, ACCESS_METHOD__TYPE);
createEReference(accessMethodEClass, ACCESS_METHOD__PARAMETERS);
createEReference(accessMethodEClass, ACCESS_METHOD__BASE_OPERATION);
parameterEClass = createEClass(PARAMETER);
createEReference(parameterEClass, PARAMETER__BASE_PARAMETER);
attributeEClass = createEClass(ATTRIBUTE);
createEReference(attributeEClass, ATTRIBUTE__METADATA);
createEReference(attributeEClass, ATTRIBUTE__BASE_PROPERTY);
metadataEClass = createEClass(METADATA);
propertyEClass = createEClass(PROPERTY);
sensorDataEClass = createEClass(SENSOR_DATA);
stateVariableEClass = createEClass(STATE_VARIABLE);
createEReference(stateVariableEClass, STATE_VARIABLE__MODIFIER);
actionEClass = createEClass(ACTION);
// Create enums
accessMethodTypeEEnum = createEEnum(ACCESS_METHOD_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
StructurePackage theStructurePackage = (StructurePackage)EPackage.Registry.INSTANCE.getEPackage(StructurePackage.eNS_URI);
AnimatePackage theAnimatePackage = (AnimatePackage)EPackage.Registry.INSTANCE.getEPackage(AnimatePackage.eNS_URI);
NetworkPackage theNetworkPackage = (NetworkPackage)EPackage.Registry.INSTANCE.getEPackage(NetworkPackage.eNS_URI);
ArtefactPackage theArtefactPackage = (ArtefactPackage)EPackage.Registry.INSTANCE.getEPackage(ArtefactPackage.eNS_URI);
TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
ResourcePackage theResourcePackage = (ResourcePackage)EPackage.Registry.INSTANCE.getEPackage(ResourcePackage.eNS_URI);
UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
studioEClass.getESuperTypes().add(theAnimatePackage.getHumanUser());
gatewayEClass.getESuperTypes().add(theNetworkPackage.getGateway());
serviceProviderEClass.getESuperTypes().add(theArtefactPackage.getVirtualEntity());
serviceEClass.getESuperTypes().add(theArtefactPackage.getService());
resourceEClass.getESuperTypes().add(theResourcePackage.getOnDeviceResource());
parameterEClass.getESuperTypes().add(this.getTypedElement());
attributeEClass.getESuperTypes().add(this.getTypedElement());
metadataEClass.getESuperTypes().add(this.getTypedElement());
propertyEClass.getESuperTypes().add(this.getResource());
sensorDataEClass.getESuperTypes().add(this.getResource());
stateVariableEClass.getESuperTypes().add(this.getResource());
actionEClass.getESuperTypes().add(this.getResource());
// Initialize classes and features; add operations and parameters
initEClass(typedElementEClass, TypedElement.class, "TypedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getTypedElement_Value(), theStructurePackage.getDetailedValueSpecification(), null, "value", 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(studioEClass, Studio.class, "Studio", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getStudio_Gateways(), this.getGateway(), null, "gateways", null, 1, -1, Studio.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEClass(gatewayEClass, Gateway.class, "Gateway", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getGateway_Devices(), this.getServiceProvider(), null, "devices", null, 1, -1, Gateway.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEClass(serviceProviderEClass, ServiceProvider.class, "ServiceProvider", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getServiceProvider_FriendlyName(), theTypesPackage.getString(), "friendlyName", null, 1, 1, ServiceProvider.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEReference(getServiceProvider_Services(), this.getService(), null, "services", null, 1, -1, ServiceProvider.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEClass(serviceEClass, Service.class, "Service", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getService_FriendlyName(), theTypesPackage.getString(), "friendlyName", null, 1, 1, Service.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEReference(getService_Resources(), this.getResource(), null, "resources", null, 1, -1, Service.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEClass(resourceEClass, Resource.class, "Resource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getResource_FriendlyName(), theTypesPackage.getString(), "friendlyName", null, 1, 1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEReference(getResource_AccessMethods(), this.getAccessMethod(), null, "accessMethods", null, 1, -1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEReference(getResource_Attributes(), this.getAttribute(), null, "attributes", null, 1, -1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEClass(accessMethodEClass, AccessMethod.class, "AccessMethod", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getAccessMethod_Type(), this.getAccessMethodType(), "type", null, 1, 1, AccessMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEReference(getAccessMethod_Parameters(), this.getParameter(), null, "parameters", null, 0, -1, AccessMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEReference(getAccessMethod_Base_Operation(), theUMLPackage.getOperation(), null, "base_Operation", null, 1, 1, AccessMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEClass(parameterEClass, Parameter.class, "Parameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getParameter_Base_Parameter(), theUMLPackage.getParameter(), null, "base_Parameter", 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(attributeEClass, Attribute.class, "Attribute", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getAttribute_Metadata(), this.getMetadata(), null, "metadata", null, 0, -1, Attribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEReference(getAttribute_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 0, 1, Attribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEClass(metadataEClass, Metadata.class, "Metadata", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(propertyEClass, Property.class, "Property", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(sensorDataEClass, SensorData.class, "SensorData", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(stateVariableEClass, StateVariable.class, "StateVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getStateVariable_Modifier(), this.getAction(), null, "modifier", null, 1, 1, StateVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
initEClass(actionEClass, Action.class, "Action", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
// Initialize enums and add enum literals
initEEnum(accessMethodTypeEEnum, AccessMethodType.class, "AccessMethodType");
addEEnumLiteral(accessMethodTypeEEnum, AccessMethodType.GET);
addEEnumLiteral(accessMethodTypeEEnum, AccessMethodType.SET);
addEEnumLiteral(accessMethodTypeEEnum, AccessMethodType.ACT);
addEEnumLiteral(accessMethodTypeEEnum, AccessMethodType.SUBSCRIBE);
addEEnumLiteral(accessMethodTypeEEnum, AccessMethodType.UNSUBSCRIBE);
// Create resource
createResource(eNS_URI);
// Create annotations
// http://www.eclipse.org/uml2/2.0.0/UML
createUMLAnnotations();
}
/**
* Initializes the annotations for <b>http://www.eclipse.org/uml2/2.0.0/UML</b>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void createUMLAnnotations() {
String source = "http://www.eclipse.org/uml2/2.0.0/UML";
addAnnotation
(this,
source,
new String[] {
"originalName", "SensiNact"
});
}
} //SensinactPackageImpl