/**
* <copyright>
* </copyright>
*
* $Id$
*/
package soamodel.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.EValidator;
import org.eclipse.emf.ecore.impl.EPackageImpl;
import soamodel.Attribute;
import soamodel.BuiltInDataType;
import soamodel.CSharpComponent;
import soamodel.CollectionType;
import soamodel.DataType;
import soamodel.Entity;
import soamodel.EnumLiteral;
import soamodel.HttpMethod;
import soamodel.JEEComponent;
import soamodel.OCLConstraint;
import soamodel.OCLDataConstraint;
import soamodel.OCLPostcondition;
import soamodel.OCLPrecondition;
import soamodel.OSGiComponent;
import soamodel.Parameter;
import soamodel.RestMethod;
import soamodel.ServiceComponent;
import soamodel.ServiceMethod;
import soamodel.ServiceOrientedArchitecture;
import soamodel.SoamodelFactory;
import soamodel.SoamodelPackage;
import soamodel.util.SoamodelValidator;
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Package</b>.
* <!-- end-user-doc -->
* @generated
*/
public class SoamodelPackageImpl extends EPackageImpl implements SoamodelPackage {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass serviceComponentEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass cSharpComponentEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass jeeComponentEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass serviceMethodEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass parameterEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass dataTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass entityEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass builtInDataTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass collectionTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass attributeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass serviceOrientedArchitectureEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass oclConstraintEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass enumEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass enumLiteralEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass osGiComponentEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass oclPostconditionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass oclDataConstraintEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass oclPreconditionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass restMethodEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EEnum httpMethodEEnum = 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 soamodel.SoamodelPackage#eNS_URI
* @see #init()
* @generated
*/
private SoamodelPackageImpl() {
super(eNS_URI, SoamodelFactory.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 SoamodelPackage#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 SoamodelPackage init() {
if (isInited) return (SoamodelPackage)EPackage.Registry.INSTANCE.getEPackage(SoamodelPackage.eNS_URI);
// Obtain or create and register package
SoamodelPackageImpl theSoamodelPackage = (SoamodelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof SoamodelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new SoamodelPackageImpl());
isInited = true;
// Create package meta-data objects
theSoamodelPackage.createPackageContents();
// Initialize created meta-data
theSoamodelPackage.initializePackageContents();
// Register package validator
EValidator.Registry.INSTANCE.put
(theSoamodelPackage,
new EValidator.Descriptor() {
public EValidator getEValidator() {
return SoamodelValidator.INSTANCE;
}
});
// Mark meta-data to indicate it can't be changed
theSoamodelPackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(SoamodelPackage.eNS_URI, theSoamodelPackage);
return theSoamodelPackage;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getServiceComponent() {
return serviceComponentEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getServiceComponent_Methods() {
return (EReference)serviceComponentEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getServiceComponent_Name() {
return (EAttribute)serviceComponentEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getServiceComponent_Namespace() {
return (EAttribute)serviceComponentEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getServiceComponent_ConnectsTo() {
return (EReference)serviceComponentEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getServiceComponent_URI() {
return (EAttribute)serviceComponentEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getServiceComponent_Persists() {
return (EReference)serviceComponentEClass.getEStructuralFeatures().get(5);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getServiceComponent_InArchitecture() {
return (EReference)serviceComponentEClass.getEStructuralFeatures().get(6);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getCSharpComponent() {
return cSharpComponentEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getJEEComponent() {
return jeeComponentEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getServiceMethod() {
return serviceMethodEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getServiceMethod_Description() {
return (EAttribute)serviceMethodEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getServiceMethod_Parameters() {
return (EReference)serviceMethodEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getServiceMethod_MethodType() {
return (EReference)serviceMethodEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getServiceMethod_Name() {
return (EAttribute)serviceMethodEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getServiceMethod_Preconditions() {
return (EReference)serviceMethodEClass.getEStructuralFeatures().get(5);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getServiceMethod_Postconditions() {
return (EReference)serviceMethodEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getParameter() {
return parameterEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getParameter_ParameterType() {
return (EReference)parameterEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getParameter_Name() {
return (EAttribute)parameterEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getDataType() {
return dataTypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getDataType_Name() {
return (EAttribute)dataTypeEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getDataType_ExtendedBy() {
return (EReference)dataTypeEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getEntity() {
return entityEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getEntity_Attributes() {
return (EReference)entityEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getEntity_OclConstraints() {
return (EReference)entityEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getEntity_SuperType() {
return (EReference)entityEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getEntity_PersistedBy() {
return (EReference)entityEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getEntity_GeneratedID() {
return (EAttribute)entityEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getEntity_ID() {
return (EReference)entityEClass.getEStructuralFeatures().get(5);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getBuiltInDataType() {
return builtInDataTypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getCollectionType() {
return collectionTypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getCollectionType_ItemType() {
return (EReference)collectionTypeEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getAttribute() {
return attributeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getAttribute_AttributeType() {
return (EReference)attributeEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getAttribute_Name() {
return (EAttribute)attributeEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getAttribute_AttributeOf() {
return (EReference)attributeEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getServiceOrientedArchitecture() {
return serviceOrientedArchitectureEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getServiceOrientedArchitecture_Components() {
return (EReference)serviceOrientedArchitectureEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getServiceOrientedArchitecture_DataTypes() {
return (EReference)serviceOrientedArchitectureEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getServiceOrientedArchitecture_Name() {
return (EAttribute)serviceOrientedArchitectureEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getOCLConstraint() {
return oclConstraintEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getOCLConstraint_Constraint() {
return (EAttribute)oclConstraintEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getOCLConstraint_Description() {
return (EAttribute)oclConstraintEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getEnum() {
return enumEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getEnum_Literals() {
return (EReference)enumEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getEnumLiteral() {
return enumLiteralEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getEnumLiteral_Name() {
return (EAttribute)enumLiteralEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getEnumLiteral_Value() {
return (EAttribute)enumLiteralEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getOSGiComponent() {
return osGiComponentEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getOCLPostcondition() {
return oclPostconditionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getOCLDataConstraint() {
return oclDataConstraintEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getOCLPrecondition() {
return oclPreconditionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getRestMethod() {
return restMethodEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getRestMethod_HttpMethod() {
return (EAttribute)restMethodEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getRestMethod_Path() {
return (EAttribute)restMethodEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EEnum getHttpMethod() {
return httpMethodEEnum;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public SoamodelFactory getSoamodelFactory() {
return (SoamodelFactory)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
serviceComponentEClass = createEClass(SERVICE_COMPONENT);
createEReference(serviceComponentEClass, SERVICE_COMPONENT__METHODS);
createEAttribute(serviceComponentEClass, SERVICE_COMPONENT__NAME);
createEAttribute(serviceComponentEClass, SERVICE_COMPONENT__NAMESPACE);
createEReference(serviceComponentEClass, SERVICE_COMPONENT__CONNECTS_TO);
createEAttribute(serviceComponentEClass, SERVICE_COMPONENT__URI);
createEReference(serviceComponentEClass, SERVICE_COMPONENT__PERSISTS);
createEReference(serviceComponentEClass, SERVICE_COMPONENT__IN_ARCHITECTURE);
cSharpComponentEClass = createEClass(CSHARP_COMPONENT);
jeeComponentEClass = createEClass(JEE_COMPONENT);
serviceMethodEClass = createEClass(SERVICE_METHOD);
createEAttribute(serviceMethodEClass, SERVICE_METHOD__DESCRIPTION);
createEReference(serviceMethodEClass, SERVICE_METHOD__PARAMETERS);
createEReference(serviceMethodEClass, SERVICE_METHOD__METHOD_TYPE);
createEAttribute(serviceMethodEClass, SERVICE_METHOD__NAME);
createEReference(serviceMethodEClass, SERVICE_METHOD__POSTCONDITIONS);
createEReference(serviceMethodEClass, SERVICE_METHOD__PRECONDITIONS);
parameterEClass = createEClass(PARAMETER);
createEReference(parameterEClass, PARAMETER__PARAMETER_TYPE);
createEAttribute(parameterEClass, PARAMETER__NAME);
dataTypeEClass = createEClass(DATA_TYPE);
createEAttribute(dataTypeEClass, DATA_TYPE__NAME);
createEReference(dataTypeEClass, DATA_TYPE__EXTENDED_BY);
entityEClass = createEClass(ENTITY);
createEReference(entityEClass, ENTITY__ATTRIBUTES);
createEReference(entityEClass, ENTITY__OCL_CONSTRAINTS);
createEReference(entityEClass, ENTITY__SUPER_TYPE);
createEReference(entityEClass, ENTITY__PERSISTED_BY);
createEAttribute(entityEClass, ENTITY__GENERATED_ID);
createEReference(entityEClass, ENTITY__ID);
builtInDataTypeEClass = createEClass(BUILT_IN_DATA_TYPE);
collectionTypeEClass = createEClass(COLLECTION_TYPE);
createEReference(collectionTypeEClass, COLLECTION_TYPE__ITEM_TYPE);
attributeEClass = createEClass(ATTRIBUTE);
createEReference(attributeEClass, ATTRIBUTE__ATTRIBUTE_TYPE);
createEAttribute(attributeEClass, ATTRIBUTE__NAME);
createEReference(attributeEClass, ATTRIBUTE__ATTRIBUTE_OF);
serviceOrientedArchitectureEClass = createEClass(SERVICE_ORIENTED_ARCHITECTURE);
createEReference(serviceOrientedArchitectureEClass, SERVICE_ORIENTED_ARCHITECTURE__COMPONENTS);
createEReference(serviceOrientedArchitectureEClass, SERVICE_ORIENTED_ARCHITECTURE__DATA_TYPES);
createEAttribute(serviceOrientedArchitectureEClass, SERVICE_ORIENTED_ARCHITECTURE__NAME);
oclConstraintEClass = createEClass(OCL_CONSTRAINT);
createEAttribute(oclConstraintEClass, OCL_CONSTRAINT__CONSTRAINT);
createEAttribute(oclConstraintEClass, OCL_CONSTRAINT__DESCRIPTION);
enumEClass = createEClass(ENUM);
createEReference(enumEClass, ENUM__LITERALS);
enumLiteralEClass = createEClass(ENUM_LITERAL);
createEAttribute(enumLiteralEClass, ENUM_LITERAL__NAME);
createEAttribute(enumLiteralEClass, ENUM_LITERAL__VALUE);
osGiComponentEClass = createEClass(OS_GI_COMPONENT);
oclPostconditionEClass = createEClass(OCL_POSTCONDITION);
oclDataConstraintEClass = createEClass(OCL_DATA_CONSTRAINT);
oclPreconditionEClass = createEClass(OCL_PRECONDITION);
restMethodEClass = createEClass(REST_METHOD);
createEAttribute(restMethodEClass, REST_METHOD__HTTP_METHOD);
createEAttribute(restMethodEClass, REST_METHOD__PATH);
// Create enums
httpMethodEEnum = createEEnum(HTTP_METHOD);
}
/**
* <!-- 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);
// Add supertypes to classes
cSharpComponentEClass.getESuperTypes().add(this.getServiceComponent());
jeeComponentEClass.getESuperTypes().add(this.getServiceComponent());
entityEClass.getESuperTypes().add(this.getDataType());
builtInDataTypeEClass.getESuperTypes().add(this.getDataType());
collectionTypeEClass.getESuperTypes().add(this.getDataType());
enumEClass.getESuperTypes().add(this.getDataType());
osGiComponentEClass.getESuperTypes().add(this.getServiceComponent());
oclPostconditionEClass.getESuperTypes().add(this.getOCLConstraint());
oclDataConstraintEClass.getESuperTypes().add(this.getOCLConstraint());
oclPreconditionEClass.getESuperTypes().add(this.getOCLConstraint());
restMethodEClass.getESuperTypes().add(this.getServiceMethod());
// Initialize classes and features; add operations and parameters
initEClass(serviceComponentEClass, ServiceComponent.class, "ServiceComponent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getServiceComponent_Methods(), this.getServiceMethod(), null, "methods", null, 0, -1, ServiceComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getServiceComponent_Name(), ecorePackage.getEString(), "name", null, 1, 1, ServiceComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getServiceComponent_Namespace(), ecorePackage.getEString(), "namespace", null, 0, 1, ServiceComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getServiceComponent_ConnectsTo(), this.getServiceComponent(), null, "connectsTo", null, 0, -1, ServiceComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getServiceComponent_URI(), ecorePackage.getEString(), "URI", null, 0, 1, ServiceComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getServiceComponent_Persists(), this.getEntity(), this.getEntity_PersistedBy(), "persists", null, 0, -1, ServiceComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getServiceComponent_InArchitecture(), this.getServiceOrientedArchitecture(), this.getServiceOrientedArchitecture_Components(), "inArchitecture", null, 1, 1, ServiceComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(cSharpComponentEClass, CSharpComponent.class, "CSharpComponent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(jeeComponentEClass, JEEComponent.class, "JEEComponent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(serviceMethodEClass, ServiceMethod.class, "ServiceMethod", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getServiceMethod_Description(), ecorePackage.getEString(), "description", null, 0, 1, ServiceMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getServiceMethod_Parameters(), this.getParameter(), null, "parameters", null, 0, -1, ServiceMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getServiceMethod_MethodType(), this.getDataType(), null, "methodType", null, 0, 1, ServiceMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getServiceMethod_Name(), ecorePackage.getEString(), "name", null, 1, 1, ServiceMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getServiceMethod_Postconditions(), this.getOCLPostcondition(), null, "postconditions", null, 0, -1, ServiceMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getServiceMethod_Preconditions(), this.getOCLPrecondition(), null, "preconditions", null, 0, -1, ServiceMethod.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_ParameterType(), this.getDataType(), null, "parameterType", null, 1, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getParameter_Name(), ecorePackage.getEString(), "name", null, 1, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(dataTypeEClass, DataType.class, "DataType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getDataType_Name(), ecorePackage.getEString(), "name", null, 1, 1, DataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getDataType_ExtendedBy(), this.getEntity(), null, "extendedBy", null, 0, 1, DataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(entityEClass, Entity.class, "Entity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getEntity_Attributes(), this.getAttribute(), this.getAttribute_AttributeOf(), "attributes", null, 0, -1, Entity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getEntity_OclConstraints(), this.getOCLDataConstraint(), null, "oclConstraints", null, 0, -1, Entity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getEntity_SuperType(), this.getDataType(), null, "superType", null, 0, 1, Entity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getEntity_PersistedBy(), this.getServiceComponent(), this.getServiceComponent_Persists(), "persistedBy", null, 0, 1, Entity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getEntity_GeneratedID(), ecorePackage.getEBoolean(), "generatedID", null, 1, 1, Entity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getEntity_ID(), this.getAttribute(), null, "ID", null, 1, 1, Entity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(builtInDataTypeEClass, BuiltInDataType.class, "BuiltInDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(collectionTypeEClass, CollectionType.class, "CollectionType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getCollectionType_ItemType(), this.getDataType(), null, "itemType", null, 1, 1, CollectionType.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_AttributeType(), this.getDataType(), null, "attributeType", null, 1, 1, Attribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getAttribute_Name(), ecorePackage.getEString(), "name", null, 1, 1, Attribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getAttribute_AttributeOf(), this.getEntity(), this.getEntity_Attributes(), "attributeOf", null, 1, 1, Attribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(serviceOrientedArchitectureEClass, ServiceOrientedArchitecture.class, "ServiceOrientedArchitecture", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getServiceOrientedArchitecture_Components(), this.getServiceComponent(), this.getServiceComponent_InArchitecture(), "components", null, 0, -1, ServiceOrientedArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getServiceOrientedArchitecture_DataTypes(), this.getDataType(), null, "dataTypes", null, 0, -1, ServiceOrientedArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getServiceOrientedArchitecture_Name(), ecorePackage.getEString(), "name", null, 1, 1, ServiceOrientedArchitecture.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(oclConstraintEClass, OCLConstraint.class, "OCLConstraint", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getOCLConstraint_Constraint(), ecorePackage.getEString(), "constraint", null, 1, 1, OCLConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getOCLConstraint_Description(), ecorePackage.getEString(), "description", null, 0, 1, OCLConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(enumEClass, soamodel.Enum.class, "Enum", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getEnum_Literals(), this.getEnumLiteral(), null, "literals", null, 1, -1, soamodel.Enum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(enumLiteralEClass, EnumLiteral.class, "EnumLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getEnumLiteral_Name(), ecorePackage.getEString(), "name", null, 1, 1, EnumLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getEnumLiteral_Value(), ecorePackage.getEInt(), "value", null, 1, 1, EnumLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(osGiComponentEClass, OSGiComponent.class, "OSGiComponent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(oclPostconditionEClass, OCLPostcondition.class, "OCLPostcondition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(oclDataConstraintEClass, OCLDataConstraint.class, "OCLDataConstraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(oclPreconditionEClass, OCLPrecondition.class, "OCLPrecondition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(restMethodEClass, RestMethod.class, "RestMethod", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getRestMethod_HttpMethod(), this.getHttpMethod(), "httpMethod", null, 1, 1, RestMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getRestMethod_Path(), ecorePackage.getEString(), "path", null, 0, 1, RestMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
// Initialize enums and add enum literals
initEEnum(httpMethodEEnum, HttpMethod.class, "HttpMethod");
addEEnumLiteral(httpMethodEEnum, HttpMethod.GET_LITERAL);
addEEnumLiteral(httpMethodEEnum, HttpMethod.POST_LITERAL);
addEEnumLiteral(httpMethodEEnum, HttpMethod.PUT_LITERAL);
addEEnumLiteral(httpMethodEEnum, HttpMethod.DELETE_LITERAL);
// Create resource
createResource(eNS_URI);
// Create annotations
// http://www.eclipse.org/emf/2002/Ecore
createEcoreAnnotations();
// http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot
createPivotAnnotations();
// http:///org/eclipse/emf/ecore/util/ExtendedMetaData
createExtendedMetaDataAnnotations();
}
/**
* Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore</b>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void createEcoreAnnotations() {
String source = "http://www.eclipse.org/emf/2002/Ecore";
addAnnotation
(this,
source,
new String[] {
"invocationDelegates", "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
"settingDelegates", "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
"validationDelegates", "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"
});
addAnnotation
(serviceComponentEClass,
source,
new String[] {
"constraints", "UniqueServiceMethodSignatures LivingComponent UniqueSCURINamespace"
});
addAnnotation
(serviceMethodEClass,
source,
new String[] {
"constraints", "FilledMethodDescription OnlyRestMethods DifferentParameternames"
});
addAnnotation
(entityEClass,
source,
new String[] {
"constraints", "uniqueEntityNames singleAttributeNameInEntity InternalIDAttribute"
});
addAnnotation
(collectionTypeEClass,
source,
new String[] {
"constraints", "existingCollectionItem UniqueItemType"
});
addAnnotation
(serviceOrientedArchitectureEClass,
source,
new String[] {
"constraints", "uniqueDatatypeNames uniqueComponentNames"
});
addAnnotation
(oclConstraintEClass,
source,
new String[] {
"constraints", "FilledOCLDescription"
});
addAnnotation
(enumEClass,
source,
new String[] {
"constraints", "UniqueLiteralNames LivingDataType UniqueLiteralValues"
});
}
/**
* Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot</b>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void createPivotAnnotations() {
String source = "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot";
addAnnotation
(serviceComponentEClass,
source,
new String[] {
"UniqueServiceMethodSignatures", "self.methods->forAll(m1 : ServiceMethod, m2 : ServiceMethod | (m1.name <> m2.name or m1 = m2)) and self.methods->forAll(m : ServiceMethod | m.parameters->forAll(p1 : Parameter, p2 : Parameter | (p1.parameterType <> p2.parameterType or p1 = p2)))",
"LivingComponent", "ServiceOrientedArchitecture.allInstances()->exists(a : ServiceOrientedArchitecture | a.components->exists(c : ServiceComponent | c = self))",
"UniqueSCURINamespace", "ServiceComponent.allInstances()->forAll(SC1 : ServiceComponent, SC2 : ServiceComponent | SC1.URI <> SC2.URI and SC1.namespace <> SC2.namespace or SC1 = SC2)"
});
addAnnotation
(serviceMethodEClass,
source,
new String[] {
"FilledMethodDescription", "self.description.size() > 0",
"OnlyRestMethods", "RestMethod.allInstances()->includes(self)",
"DifferentParameternames", "self.parameters->forAll(p1 : Parameter, p2 : Parameter | p1.name <> p2.name or p1 = p2)"
});
addAnnotation
(entityEClass,
source,
new String[] {
"uniqueEntityNames", "not Entity.allInstances()->exists(e1 : Entity, e2 : Entity | (e1.name = e2.name and e1 <> e2))",
"singleAttributeNameInEntity", "self.attributes->forAll(a1 : Attribute, a2 : Attribute | a1.name <> a2.name or a1 = a2)",
"InternalIDAttribute", "self.ID.attributeOf = self"
});
addAnnotation
(collectionTypeEClass,
source,
new String[] {
"existingCollectionItem", "DataType.allInstances()->exists(d : DataType | self.itemType = d)",
"UniqueItemType", "CollectionType.allInstances()->forAll(C1 : CollectionType, C2 : CollectionType | C1.itemType <> C2.itemType or C1 = C2)"
});
addAnnotation
(serviceOrientedArchitectureEClass,
source,
new String[] {
"uniqueDatatypeNames", "self.dataTypes->forAll(t1 : DataType, t2 : DataType | t1.name <> t2.name or t1 = t2)",
"uniqueComponentNames", "self.components->forAll(s1 : ServiceComponent, s2 : ServiceComponent | s1.name <> s2.name or s1 = s2)"
});
addAnnotation
(oclConstraintEClass,
source,
new String[] {
"FilledOCLDescription", "self.description.size() > 0"
});
addAnnotation
(enumEClass,
source,
new String[] {
"UniqueLiteralNames", "self.literals->forAll(L1 : EnumLiteral, L2 : EnumLiteral | L1.name <> L2.name or L1 = L2)",
"LivingDataType", "ServiceOrientedArchitecture.allInstances()->exists(a : ServiceOrientedArchitecture | a.dataTypes->exists(c : DataType | c = self))",
"UniqueLiteralValues", "self.literals->forAll(l1 : EnumLiteral, l2 : EnumLiteral | l1.value <> l2.value or l1 = l2)"
});
}
/**
* Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void createExtendedMetaDataAnnotations() {
String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";
addAnnotation
(getServiceOrientedArchitecture_Components(),
source,
new String[] {
"name", "dataTypes"
});
}
} //SoamodelPackageImpl