/*******************************************************************************
* Copyright (c) 2006, 2011 IBM Corporation, Zeligsoft Inc., and others.
* 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:
* IBM - Initial API and implementation
* Zeligsoft - Bug 207365
*******************************************************************************/
package org.eclipse.ocl.types.impl;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EGenericType;
import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.ETypeParameter;
import org.eclipse.emf.ecore.EValidator;
import org.eclipse.emf.ecore.impl.EPackageImpl;
import org.eclipse.ocl.expressions.ExpressionsPackage;
import org.eclipse.ocl.expressions.impl.ExpressionsPackageImpl;
import org.eclipse.ocl.types.AnyType;
import org.eclipse.ocl.types.BagType;
import org.eclipse.ocl.types.CollectionType;
import org.eclipse.ocl.types.ElementType;
import org.eclipse.ocl.types.InvalidType;
import org.eclipse.ocl.types.MessageType;
import org.eclipse.ocl.types.OrderedSetType;
import org.eclipse.ocl.types.PrimitiveType;
import org.eclipse.ocl.types.SequenceType;
import org.eclipse.ocl.types.SetType;
import org.eclipse.ocl.types.TemplateParameterType;
import org.eclipse.ocl.types.TupleType;
import org.eclipse.ocl.types.TypeType;
import org.eclipse.ocl.types.TypesFactory;
import org.eclipse.ocl.types.TypesPackage;
import org.eclipse.ocl.types.VoidType;
import org.eclipse.ocl.types.util.TypesValidator;
import org.eclipse.ocl.utilities.UtilitiesPackage;
import org.eclipse.ocl.utilities.impl.UtilitiesPackageImpl;
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Package</b>.
* <!-- end-user-doc -->
* @generated
*/
public class TypesPackageImpl
extends EPackageImpl
implements TypesPackage {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass anyTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass bagTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass collectionTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass elementTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass invalidTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass messageTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass orderedSetTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass primitiveTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass sequenceTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass setTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass tupleTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass typeTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass voidTypeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass templateParameterTypeEClass = 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.ocl.types.TypesPackage#eNS_URI
* @see #init()
* @generated
*/
private TypesPackageImpl() {
super(eNS_URI, TypesFactory.eINSTANCE);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private static boolean isInited = false;
/**
* Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
*
* <p>This method is used to initialize {@link TypesPackage#eINSTANCE} when that field is accessed.
* Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #eNS_URI
* @see #createPackageContents()
* @see #initializePackageContents()
* @generated
*/
public static TypesPackage init() {
if (isInited)
return (TypesPackage) EPackage.Registry.INSTANCE
.getEPackage(TypesPackage.eNS_URI);
// Obtain or create and register package
TypesPackageImpl theTypesPackage = (TypesPackageImpl) (EPackage.Registry.INSTANCE
.get(eNS_URI) instanceof TypesPackageImpl
? EPackage.Registry.INSTANCE.get(eNS_URI)
: new TypesPackageImpl());
isInited = true;
// Obtain or create and register interdependencies
UtilitiesPackageImpl theUtilitiesPackage = (UtilitiesPackageImpl) (EPackage.Registry.INSTANCE
.getEPackage(
UtilitiesPackage.eNS_URI) instanceof UtilitiesPackageImpl
? EPackage.Registry.INSTANCE
.getEPackage(UtilitiesPackage.eNS_URI)
: UtilitiesPackage.eINSTANCE);
ExpressionsPackageImpl theExpressionsPackage = (ExpressionsPackageImpl) (EPackage.Registry.INSTANCE
.getEPackage(
ExpressionsPackage.eNS_URI) instanceof ExpressionsPackageImpl
? EPackage.Registry.INSTANCE
.getEPackage(ExpressionsPackage.eNS_URI)
: ExpressionsPackage.eINSTANCE);
// Create package meta-data objects
theTypesPackage.createPackageContents();
theUtilitiesPackage.createPackageContents();
theExpressionsPackage.createPackageContents();
// Initialize created meta-data
theTypesPackage.initializePackageContents();
theUtilitiesPackage.initializePackageContents();
theExpressionsPackage.initializePackageContents();
// Register package validator
EValidator.Registry.INSTANCE.put(theTypesPackage,
new EValidator.Descriptor() {
public EValidator getEValidator() {
return TypesValidator.INSTANCE;
}
});
// Mark meta-data to indicate it can't be changed
theTypesPackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(TypesPackage.eNS_URI, theTypesPackage);
return theTypesPackage;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getAnyType() {
return anyTypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getBagType() {
return bagTypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getCollectionType() {
return collectionTypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getCollectionType_ElementType() {
return (EReference) collectionTypeEClass.getEStructuralFeatures()
.get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getCollectionType_Kind() {
return (EAttribute) collectionTypeEClass.getEStructuralFeatures()
.get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getElementType() {
return elementTypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getInvalidType() {
return invalidTypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getMessageType() {
return messageTypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getMessageType_ReferredOperation() {
return (EReference) messageTypeEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getMessageType_ReferredSignal() {
return (EReference) messageTypeEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getOrderedSetType() {
return orderedSetTypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getPrimitiveType() {
return primitiveTypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getSequenceType() {
return sequenceTypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getSetType() {
return setTypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getTupleType() {
return tupleTypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getTypeType() {
return typeTypeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getTypeType_ReferredType() {
return (EReference) typeTypeEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getVoidType() {
return voidTypeEClass;
}
/**
* <!-- begin-user-doc -->
* @since 3.0
* <!-- end-user-doc -->
* @generated
*/
public EClass getTemplateParameterType() {
return templateParameterTypeEClass;
}
/**
* <!-- begin-user-doc -->
* @since 3.0
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getTemplateParameterType_Specification() {
return (EAttribute) templateParameterTypeEClass.getEStructuralFeatures()
.get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TypesFactory getTypesFactory() {
return (TypesFactory) getEFactoryInstance();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private boolean isCreated = false;
/**
* Creates the meta-model objects for the package. This method is
* guarded to have no affect on any invocation but its first.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void createPackageContents() {
if (isCreated)
return;
isCreated = true;
// Create classes and their features
anyTypeEClass = createEClass(ANY_TYPE);
bagTypeEClass = createEClass(BAG_TYPE);
collectionTypeEClass = createEClass(COLLECTION_TYPE);
createEReference(collectionTypeEClass, COLLECTION_TYPE__ELEMENT_TYPE);
createEAttribute(collectionTypeEClass, COLLECTION_TYPE__KIND);
elementTypeEClass = createEClass(ELEMENT_TYPE);
invalidTypeEClass = createEClass(INVALID_TYPE);
messageTypeEClass = createEClass(MESSAGE_TYPE);
createEReference(messageTypeEClass, MESSAGE_TYPE__REFERRED_OPERATION);
createEReference(messageTypeEClass, MESSAGE_TYPE__REFERRED_SIGNAL);
orderedSetTypeEClass = createEClass(ORDERED_SET_TYPE);
primitiveTypeEClass = createEClass(PRIMITIVE_TYPE);
sequenceTypeEClass = createEClass(SEQUENCE_TYPE);
setTypeEClass = createEClass(SET_TYPE);
templateParameterTypeEClass = createEClass(TEMPLATE_PARAMETER_TYPE);
createEAttribute(templateParameterTypeEClass,
TEMPLATE_PARAMETER_TYPE__SPECIFICATION);
tupleTypeEClass = createEClass(TUPLE_TYPE);
typeTypeEClass = createEClass(TYPE_TYPE);
createEReference(typeTypeEClass, TYPE_TYPE__REFERRED_TYPE);
voidTypeEClass = createEClass(VOID_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.
* <p>
* The generated implementation is extended by adding me as a child of
* the empty root <tt>OCL</tt> package.
* </p>
*/
public void initializePackageContents() {
if (!isInitialized) {
// create my own resource first, before adding me to my parent
// package. Otherwise, I will already be in a resource when
// createResource() is called, and it will not create a new one
initializePackageContentsGen();
ExpressionsPackageImpl.OCL_ROOT_PACKAGE.getESubpackages().add(this);
}
}
/**
* 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 initializePackageContentsGen() {
if (isInitialized)
return;
isInitialized = true;
// Initialize package
setName(eNAME);
setNsPrefix(eNS_PREFIX);
setNsURI(eNS_URI);
// Obtain other dependent packages
UtilitiesPackage theUtilitiesPackage = (UtilitiesPackage) EPackage.Registry.INSTANCE
.getEPackage(UtilitiesPackage.eNS_URI);
ExpressionsPackage theExpressionsPackage = (ExpressionsPackage) EPackage.Registry.INSTANCE
.getEPackage(ExpressionsPackage.eNS_URI);
// Create type parameters
ETypeParameter anyTypeEClass_O = addETypeParameter(anyTypeEClass, "O"); //$NON-NLS-1$
ETypeParameter bagTypeEClass_C = addETypeParameter(bagTypeEClass, "C"); //$NON-NLS-1$
ETypeParameter bagTypeEClass_O = addETypeParameter(bagTypeEClass, "O"); //$NON-NLS-1$
ETypeParameter collectionTypeEClass_C = addETypeParameter(
collectionTypeEClass, "C"); //$NON-NLS-1$
ETypeParameter collectionTypeEClass_O = addETypeParameter(
collectionTypeEClass, "O"); //$NON-NLS-1$
ETypeParameter invalidTypeEClass_O = addETypeParameter(
invalidTypeEClass, "O"); //$NON-NLS-1$
ETypeParameter messageTypeEClass_C = addETypeParameter(
messageTypeEClass, "C"); //$NON-NLS-1$
ETypeParameter messageTypeEClass_O = addETypeParameter(
messageTypeEClass, "O"); //$NON-NLS-1$
ETypeParameter messageTypeEClass_P = addETypeParameter(
messageTypeEClass, "P"); //$NON-NLS-1$
ETypeParameter orderedSetTypeEClass_C = addETypeParameter(
orderedSetTypeEClass, "C"); //$NON-NLS-1$
ETypeParameter orderedSetTypeEClass_O = addETypeParameter(
orderedSetTypeEClass, "O"); //$NON-NLS-1$
ETypeParameter primitiveTypeEClass_O = addETypeParameter(
primitiveTypeEClass, "O"); //$NON-NLS-1$
ETypeParameter sequenceTypeEClass_C = addETypeParameter(
sequenceTypeEClass, "C"); //$NON-NLS-1$
ETypeParameter sequenceTypeEClass_O = addETypeParameter(
sequenceTypeEClass, "O"); //$NON-NLS-1$
ETypeParameter setTypeEClass_C = addETypeParameter(setTypeEClass, "C"); //$NON-NLS-1$
ETypeParameter setTypeEClass_O = addETypeParameter(setTypeEClass, "O"); //$NON-NLS-1$
addETypeParameter(templateParameterTypeEClass, "O"); //$NON-NLS-1$
ETypeParameter tupleTypeEClass_O = addETypeParameter(tupleTypeEClass,
"O"); //$NON-NLS-1$
ETypeParameter tupleTypeEClass_P = addETypeParameter(tupleTypeEClass,
"P"); //$NON-NLS-1$
ETypeParameter typeTypeEClass_C = addETypeParameter(typeTypeEClass,
"C"); //$NON-NLS-1$
ETypeParameter typeTypeEClass_O = addETypeParameter(typeTypeEClass,
"O"); //$NON-NLS-1$
ETypeParameter voidTypeEClass_O = addETypeParameter(voidTypeEClass,
"O"); //$NON-NLS-1$
// Set bounds for type parameters
// Add supertypes to classes
EGenericType g1 = createEGenericType(
theUtilitiesPackage.getPredefinedType());
EGenericType g2 = createEGenericType(anyTypeEClass_O);
g1.getETypeArguments().add(g2);
anyTypeEClass.getEGenericSuperTypes().add(g1);
g1 = createEGenericType(this.getCollectionType());
g2 = createEGenericType(bagTypeEClass_C);
g1.getETypeArguments().add(g2);
g2 = createEGenericType(bagTypeEClass_O);
g1.getETypeArguments().add(g2);
bagTypeEClass.getEGenericSuperTypes().add(g1);
g1 = createEGenericType(theUtilitiesPackage.getPredefinedType());
g2 = createEGenericType(collectionTypeEClass_O);
g1.getETypeArguments().add(g2);
collectionTypeEClass.getEGenericSuperTypes().add(g1);
g1 = createEGenericType(theUtilitiesPackage.getTypedASTNode());
collectionTypeEClass.getEGenericSuperTypes().add(g1);
g1 = createEGenericType(theUtilitiesPackage.getPredefinedType());
g2 = createEGenericType(invalidTypeEClass_O);
g1.getETypeArguments().add(g2);
invalidTypeEClass.getEGenericSuperTypes().add(g1);
g1 = createEGenericType(theUtilitiesPackage.getPredefinedType());
g2 = createEGenericType(messageTypeEClass_O);
g1.getETypeArguments().add(g2);
messageTypeEClass.getEGenericSuperTypes().add(g1);
g1 = createEGenericType(this.getCollectionType());
g2 = createEGenericType(orderedSetTypeEClass_C);
g1.getETypeArguments().add(g2);
g2 = createEGenericType(orderedSetTypeEClass_O);
g1.getETypeArguments().add(g2);
orderedSetTypeEClass.getEGenericSuperTypes().add(g1);
g1 = createEGenericType(theUtilitiesPackage.getPredefinedType());
g2 = createEGenericType(primitiveTypeEClass_O);
g1.getETypeArguments().add(g2);
primitiveTypeEClass.getEGenericSuperTypes().add(g1);
g1 = createEGenericType(this.getCollectionType());
g2 = createEGenericType(sequenceTypeEClass_C);
g1.getETypeArguments().add(g2);
g2 = createEGenericType(sequenceTypeEClass_O);
g1.getETypeArguments().add(g2);
sequenceTypeEClass.getEGenericSuperTypes().add(g1);
g1 = createEGenericType(this.getCollectionType());
g2 = createEGenericType(setTypeEClass_C);
g1.getETypeArguments().add(g2);
g2 = createEGenericType(setTypeEClass_O);
g1.getETypeArguments().add(g2);
setTypeEClass.getEGenericSuperTypes().add(g1);
g1 = createEGenericType(theUtilitiesPackage.getPredefinedType());
g2 = createEGenericType(tupleTypeEClass_O);
g1.getETypeArguments().add(g2);
tupleTypeEClass.getEGenericSuperTypes().add(g1);
g1 = createEGenericType(theUtilitiesPackage.getPredefinedType());
g2 = createEGenericType(typeTypeEClass_O);
g1.getETypeArguments().add(g2);
typeTypeEClass.getEGenericSuperTypes().add(g1);
g1 = createEGenericType(theUtilitiesPackage.getPredefinedType());
g2 = createEGenericType(voidTypeEClass_O);
g1.getETypeArguments().add(g2);
voidTypeEClass.getEGenericSuperTypes().add(g1);
// Initialize classes and features; add operations and parameters
initEClass(anyTypeEClass, AnyType.class, "AnyType", !IS_ABSTRACT, //$NON-NLS-1$
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(bagTypeEClass, BagType.class, "BagType", !IS_ABSTRACT, //$NON-NLS-1$
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(collectionTypeEClass, CollectionType.class, "CollectionType", //$NON-NLS-1$
!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
g1 = createEGenericType(collectionTypeEClass_C);
initEReference(getCollectionType_ElementType(), g1, null, "elementType", //$NON-NLS-1$
null, 0, 1, CollectionType.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getCollectionType_Kind(),
theExpressionsPackage.getCollectionKind(), "kind", null, 1, 1, //$NON-NLS-1$
CollectionType.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE,
!IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
EOperation op = addEOperation(collectionTypeEClass,
ecorePackage.getEBoolean(), "checkCollectionTypeName", 0, 1, //$NON-NLS-1$
IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, //$NON-NLS-1$
1, IS_UNIQUE, IS_ORDERED);
g1 = createEGenericType(ecorePackage.getEMap());
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op = addEOperation(collectionTypeEClass, ecorePackage.getEBoolean(),
"checkNoInvalidValues", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, //$NON-NLS-1$
1, IS_UNIQUE, IS_ORDERED);
g1 = createEGenericType(ecorePackage.getEMap());
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op = addEOperation(collectionTypeEClass, null, "oclIterators", 0, -1, //$NON-NLS-1$
IS_UNIQUE, IS_ORDERED);
g1 = createEGenericType(collectionTypeEClass_O);
initEOperation(op, g1);
initEClass(elementTypeEClass, ElementType.class, "ElementType", //$NON-NLS-1$
!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(invalidTypeEClass, InvalidType.class, "InvalidType", //$NON-NLS-1$
!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(messageTypeEClass, MessageType.class, "MessageType", //$NON-NLS-1$
!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
g1 = createEGenericType(messageTypeEClass_O);
initEReference(getMessageType_ReferredOperation(), g1, null,
"referredOperation", null, 0, 1, MessageType.class, !IS_TRANSIENT, //$NON-NLS-1$
!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
g1 = createEGenericType(messageTypeEClass_C);
initEReference(getMessageType_ReferredSignal(), g1, null,
"referredSignal", null, 0, 1, MessageType.class, !IS_TRANSIENT, //$NON-NLS-1$
!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
op = addEOperation(messageTypeEClass, ecorePackage.getEBoolean(),
"checkExclusiveSignature", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, //$NON-NLS-1$
1, IS_UNIQUE, IS_ORDERED);
g1 = createEGenericType(ecorePackage.getEMap());
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op = addEOperation(messageTypeEClass, ecorePackage.getEBoolean(),
"checkOperationParameters", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, //$NON-NLS-1$
1, IS_UNIQUE, IS_ORDERED);
g1 = createEGenericType(ecorePackage.getEMap());
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op = addEOperation(messageTypeEClass, ecorePackage.getEBoolean(),
"checkSignalAttributes", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, //$NON-NLS-1$
1, IS_UNIQUE, IS_ORDERED);
g1 = createEGenericType(ecorePackage.getEMap());
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op = addEOperation(messageTypeEClass, null, "oclProperties", 0, -1, //$NON-NLS-1$
IS_UNIQUE, IS_ORDERED);
g1 = createEGenericType(messageTypeEClass_P);
initEOperation(op, g1);
initEClass(orderedSetTypeEClass, OrderedSetType.class, "OrderedSetType", //$NON-NLS-1$
!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(primitiveTypeEClass, PrimitiveType.class, "PrimitiveType", //$NON-NLS-1$
!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(sequenceTypeEClass, SequenceType.class, "SequenceType", //$NON-NLS-1$
!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(setTypeEClass, SetType.class, "SetType", !IS_ABSTRACT, //$NON-NLS-1$
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(templateParameterTypeEClass, TemplateParameterType.class,
"TemplateParameterType", !IS_ABSTRACT, !IS_INTERFACE, //$NON-NLS-1$
IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getTemplateParameterType_Specification(),
ecorePackage.getEString(), "specification", null, 0, 1, //$NON-NLS-1$
TemplateParameterType.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
!IS_ORDERED);
initEClass(tupleTypeEClass, TupleType.class, "TupleType", !IS_ABSTRACT, //$NON-NLS-1$
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(tupleTypeEClass, ecorePackage.getEBoolean(),
"checkTupleTypeName", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, //$NON-NLS-1$
1, IS_UNIQUE, IS_ORDERED);
g1 = createEGenericType(ecorePackage.getEMap());
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op = addEOperation(tupleTypeEClass, ecorePackage.getEBoolean(),
"checkPartNamesUnique", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, //$NON-NLS-1$
1, IS_UNIQUE, IS_ORDERED);
g1 = createEGenericType(ecorePackage.getEMap());
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op = addEOperation(tupleTypeEClass, ecorePackage.getEBoolean(),
"checkFeaturesOnlyProperties", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, //$NON-NLS-1$
1, IS_UNIQUE, IS_ORDERED);
g1 = createEGenericType(ecorePackage.getEMap());
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
g2 = createEGenericType(ecorePackage.getEJavaObject());
g1.getETypeArguments().add(g2);
addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op = addEOperation(tupleTypeEClass, null, "oclProperties", 0, -1, //$NON-NLS-1$
IS_UNIQUE, IS_ORDERED);
g1 = createEGenericType(tupleTypeEClass_P);
initEOperation(op, g1);
initEClass(typeTypeEClass, TypeType.class, "TypeType", !IS_ABSTRACT, //$NON-NLS-1$
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
g1 = createEGenericType(typeTypeEClass_C);
initEReference(getTypeType_ReferredType(), g1, null, "referredType", //$NON-NLS-1$
null, 1, 1, TypeType.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(voidTypeEClass, VoidType.class, "VoidType", !IS_ABSTRACT, //$NON-NLS-1$
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
// Create resource
createResource(eNS_URI);
// Create annotations
// duplicates
createDuplicatesAnnotations();
}
/**
* Initializes the annotations for <b>duplicates</b>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void createDuplicatesAnnotations() {
String source = "duplicates"; //$NON-NLS-1$
addAnnotation(bagTypeEClass, source, new String[]{});
addAnnotation(orderedSetTypeEClass, source, new String[]{});
addAnnotation(sequenceTypeEClass, source, new String[]{});
addAnnotation(setTypeEClass, source, new String[]{});
}
} //TypesPackageImpl