/**
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright (C) 2007 Matthias Braeuer (braeuer.matthias@web.de). *
* All rights reserved. *
* *
* This work was done as a project at the Chair for Software Technology, *
* Dresden University Of Technology, Germany (http://st.inf.tu-dresden.de). *
* It is understood that any modification not identified as such is not *
* covered by the preceding statement. *
* *
* This work is free software; you can redistribute it and/or modify it *
* under the terms of the GNU Library General Public License as published *
* by the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This work is distributed in the hope that it will be useful, but WITHOUT *
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public *
* License for more details. *
* *
* You should have received a copy of the GNU Library General Public License *
* along with this library; if not, you can view it online at *
* http://www.fsf.org/licensing/licenses/gpl.html. *
* *
* To submit a bug report, send a comment, or get the latest news on this *
* project, please visit the website: http://dresden-ocl.sourceforge.net. *
* For more information on OCL and related projects visit the OCL Portal: *
* http://st.inf.tu-dresden.de/ocl *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* $Id$
*/
package org.dresdenocl.pivotmodel.impl;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EEnum;
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.impl.EPackageImpl;
import org.dresdenocl.datatypes.DatatypesPackage;
import org.dresdenocl.datatypes.impl.DatatypesPackageImpl;
import org.dresdenocl.pivotmodel.AssociationProperty;
import org.dresdenocl.pivotmodel.ComplexGenericType;
import org.dresdenocl.pivotmodel.ConstrainableElement;
import org.dresdenocl.pivotmodel.Constraint;
import org.dresdenocl.pivotmodel.ConstraintKind;
import org.dresdenocl.pivotmodel.Enumeration;
import org.dresdenocl.pivotmodel.EnumerationLiteral;
import org.dresdenocl.pivotmodel.Expression;
import org.dresdenocl.pivotmodel.Feature;
import org.dresdenocl.pivotmodel.GenericElement;
import org.dresdenocl.pivotmodel.GenericType;
import org.dresdenocl.pivotmodel.NamedElement;
import org.dresdenocl.pivotmodel.Namespace;
import org.dresdenocl.pivotmodel.Operation;
import org.dresdenocl.pivotmodel.Parameter;
import org.dresdenocl.pivotmodel.ParameterDirectionKind;
import org.dresdenocl.pivotmodel.ParameterGenericType;
import org.dresdenocl.pivotmodel.PivotModelFactory;
import org.dresdenocl.pivotmodel.PivotModelPackage;
import org.dresdenocl.pivotmodel.PrimitiveType;
import org.dresdenocl.pivotmodel.PrimitiveTypeKind;
import org.dresdenocl.pivotmodel.Property;
import org.dresdenocl.pivotmodel.Type;
import org.dresdenocl.pivotmodel.TypeArgument;
import org.dresdenocl.pivotmodel.TypeParameter;
import org.dresdenocl.pivotmodel.TypedElement;
/**
* <!-- begin-user-doc --> The <b>Package</b> for the model. It contains
* accessors for the meta objects to represent
* <ul>
* <li>each class,</li>
* <li>each feature of each class,</li>
* <li>each enum,</li>
* <li>and each data type</li>
* </ul>
* <!-- end-user-doc -->
* @generated
*/
public class PivotModelPackageImpl extends EPackageImpl implements
PivotModelPackage {
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass enumerationEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass namedElementEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass operationEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass namespaceEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass typeEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass parameterEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass enumerationLiteralEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass propertyEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass typedElementEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass primitiveTypeEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass featureEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass constraintEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass expressionEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass associationPropertyEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass constrainableElementEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass genericElementEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass genericTypeEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass typeParameterEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass typeArgumentEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass parameterGenericTypeEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass complexGenericTypeEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EEnum parameterDirectionKindEEnum = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EEnum constraintKindEEnum = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EEnum primitiveTypeKindEEnum = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EDataType cloneNotSupportedExceptionEDataType = 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.dresdenocl.pivotmodel.PivotModelPackage#eNS_URI
* @see #init()
* @generated
*/
private PivotModelPackageImpl() {
super(eNS_URI, PivotModelFactory.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 PivotModelPackage#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 PivotModelPackage init() {
if (isInited)
return (PivotModelPackage) EPackage.Registry.INSTANCE
.getEPackage(PivotModelPackage.eNS_URI);
// Obtain or create and register package
PivotModelPackageImpl thePivotModelPackage =
(PivotModelPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof PivotModelPackageImpl ? EPackage.Registry.INSTANCE
.get(eNS_URI) : new PivotModelPackageImpl());
isInited = true;
// Obtain or create and register interdependencies
DatatypesPackageImpl theDatatypesPackage =
(DatatypesPackageImpl) (EPackage.Registry.INSTANCE
.getEPackage(DatatypesPackage.eNS_URI) instanceof DatatypesPackageImpl ? EPackage.Registry.INSTANCE
.getEPackage(DatatypesPackage.eNS_URI) : DatatypesPackage.eINSTANCE);
// Create package meta-data objects
thePivotModelPackage.createPackageContents();
theDatatypesPackage.createPackageContents();
// Initialize created meta-data
thePivotModelPackage.initializePackageContents();
theDatatypesPackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
thePivotModelPackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(PivotModelPackage.eNS_URI,
thePivotModelPackage);
return thePivotModelPackage;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getEnumeration() {
return enumerationEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getEnumeration_OwnedLiteral() {
return (EReference) enumerationEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getNamedElement() {
return namedElementEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getNamedElement_Name() {
return (EAttribute) namedElementEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getNamedElement_QualifiedName() {
return (EAttribute) namedElementEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getNamedElement_Owner() {
return (EReference) namedElementEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getOperation() {
return operationEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getOperation_OwningType() {
return (EReference) operationEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getOperation_OwnedParameter() {
return (EReference) operationEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getOperation_InputParameter() {
return (EReference) operationEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getOperation_OutputParameter() {
return (EReference) operationEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getOperation_ReturnParameter() {
return (EReference) operationEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getOperation_SignatureParameter() {
return (EReference) operationEClass.getEStructuralFeatures().get(5);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getNamespace() {
return namespaceEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getNamespace_OwnedType() {
return (EReference) namespaceEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getNamespace_OwnedRule() {
return (EReference) namespaceEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getNamespace_NestedNamespace() {
return (EReference) namespaceEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getNamespace_NestingNamespace() {
return (EReference) namespaceEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getType() {
return typeEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getType_SuperType() {
return (EReference) typeEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getType_GenericSuperType() {
return (EReference) typeEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getType_OwnedOperation() {
return (EReference) typeEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getType_OwnedProperty() {
return (EReference) typeEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getType_Namespace() {
return (EReference) typeEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getParameter() {
return parameterEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getParameter_Kind() {
return (EAttribute) parameterEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getParameter_Operation() {
return (EReference) parameterEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getEnumerationLiteral() {
return enumerationLiteralEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getEnumerationLiteral_Enumeration() {
return (EReference) enumerationLiteralEClass.getEStructuralFeatures()
.get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getProperty() {
return propertyEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getProperty_OwningType() {
return (EReference) propertyEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getTypedElement() {
return typedElementEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getTypedElement_Type() {
return (EReference) typedElementEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getTypedElement_GenericType() {
return (EReference) typedElementEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getPrimitiveType() {
return primitiveTypeEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getPrimitiveType_Kind() {
return (EAttribute) primitiveTypeEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getFeature() {
return featureEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getFeature_Static() {
return (EAttribute) featureEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getFeature_Semantics() {
return (EReference) featureEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getConstraint() {
return constraintEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getConstraint_Kind() {
return (EAttribute) constraintEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getConstraint_Namespace() {
return (EReference) constraintEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getConstraint_Specification() {
return (EReference) constraintEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getConstraint_ConstrainedElement() {
return (EReference) constraintEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getConstraint_DefinedFeature() {
return (EReference) constraintEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getExpression() {
return expressionEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getExpression_Body() {
return (EAttribute) expressionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EAttribute getExpression_Language() {
return (EAttribute) expressionEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getExpression_Constraint() {
return (EReference) expressionEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getAssociationProperty() {
return associationPropertyEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getAssociationProperty_InverseAssociationProperties() {
return (EReference) associationPropertyEClass.getEStructuralFeatures().get(
0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getConstrainableElement() {
return constrainableElementEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getGenericElement() {
return genericElementEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getGenericElement_OwnedTypeParameter() {
return (EReference) genericElementEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getGenericType() {
return genericTypeEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getTypeParameter() {
return typeParameterEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getTypeParameter_GenericElement() {
return (EReference) typeParameterEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getTypeArgument() {
return typeArgumentEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getTypeArgument_OwningGenericType() {
return (EReference) typeArgumentEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getParameterGenericType() {
return parameterGenericTypeEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getParameterGenericType_TypeParameter() {
return (EReference) parameterGenericTypeEClass.getEStructuralFeatures()
.get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EClass getComplexGenericType() {
return complexGenericTypeEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getComplexGenericType_UnboundType() {
return (EReference) complexGenericTypeEClass.getEStructuralFeatures()
.get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getComplexGenericType_TypeArgument() {
return (EReference) complexGenericTypeEClass.getEStructuralFeatures()
.get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EEnum getParameterDirectionKind() {
return parameterDirectionKindEEnum;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EEnum getConstraintKind() {
return constraintKindEEnum;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EEnum getPrimitiveTypeKind() {
return primitiveTypeKindEEnum;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EDataType getCloneNotSupportedException() {
return cloneNotSupportedExceptionEDataType;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public PivotModelFactory getPivotModelFactory() {
return (PivotModelFactory) 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
namedElementEClass = createEClass(NAMED_ELEMENT);
createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME);
createEAttribute(namedElementEClass, NAMED_ELEMENT__QUALIFIED_NAME);
createEReference(namedElementEClass, NAMED_ELEMENT__OWNER);
typedElementEClass = createEClass(TYPED_ELEMENT);
createEReference(typedElementEClass, TYPED_ELEMENT__TYPE);
createEReference(typedElementEClass, TYPED_ELEMENT__GENERIC_TYPE);
featureEClass = createEClass(FEATURE);
createEAttribute(featureEClass, FEATURE__STATIC);
createEReference(featureEClass, FEATURE__SEMANTICS);
genericElementEClass = createEClass(GENERIC_ELEMENT);
createEReference(genericElementEClass,
GENERIC_ELEMENT__OWNED_TYPE_PARAMETER);
constrainableElementEClass = createEClass(CONSTRAINABLE_ELEMENT);
namespaceEClass = createEClass(NAMESPACE);
createEReference(namespaceEClass, NAMESPACE__OWNED_TYPE);
createEReference(namespaceEClass, NAMESPACE__OWNED_RULE);
createEReference(namespaceEClass, NAMESPACE__NESTED_NAMESPACE);
createEReference(namespaceEClass, NAMESPACE__NESTING_NAMESPACE);
typeEClass = createEClass(TYPE);
createEReference(typeEClass, TYPE__NAMESPACE);
createEReference(typeEClass, TYPE__OWNED_OPERATION);
createEReference(typeEClass, TYPE__OWNED_PROPERTY);
createEReference(typeEClass, TYPE__SUPER_TYPE);
createEReference(typeEClass, TYPE__GENERIC_SUPER_TYPE);
primitiveTypeEClass = createEClass(PRIMITIVE_TYPE);
createEAttribute(primitiveTypeEClass, PRIMITIVE_TYPE__KIND);
enumerationEClass = createEClass(ENUMERATION);
createEReference(enumerationEClass, ENUMERATION__OWNED_LITERAL);
enumerationLiteralEClass = createEClass(ENUMERATION_LITERAL);
createEReference(enumerationLiteralEClass, ENUMERATION_LITERAL__ENUMERATION);
propertyEClass = createEClass(PROPERTY);
createEReference(propertyEClass, PROPERTY__OWNING_TYPE);
operationEClass = createEClass(OPERATION);
createEReference(operationEClass, OPERATION__OWNING_TYPE);
createEReference(operationEClass, OPERATION__OWNED_PARAMETER);
createEReference(operationEClass, OPERATION__INPUT_PARAMETER);
createEReference(operationEClass, OPERATION__OUTPUT_PARAMETER);
createEReference(operationEClass, OPERATION__RETURN_PARAMETER);
createEReference(operationEClass, OPERATION__SIGNATURE_PARAMETER);
parameterEClass = createEClass(PARAMETER);
createEAttribute(parameterEClass, PARAMETER__KIND);
createEReference(parameterEClass, PARAMETER__OPERATION);
genericTypeEClass = createEClass(GENERIC_TYPE);
parameterGenericTypeEClass = createEClass(PARAMETER_GENERIC_TYPE);
createEReference(parameterGenericTypeEClass,
PARAMETER_GENERIC_TYPE__TYPE_PARAMETER);
complexGenericTypeEClass = createEClass(COMPLEX_GENERIC_TYPE);
createEReference(complexGenericTypeEClass,
COMPLEX_GENERIC_TYPE__UNBOUND_TYPE);
createEReference(complexGenericTypeEClass,
COMPLEX_GENERIC_TYPE__TYPE_ARGUMENT);
typeParameterEClass = createEClass(TYPE_PARAMETER);
createEReference(typeParameterEClass, TYPE_PARAMETER__GENERIC_ELEMENT);
typeArgumentEClass = createEClass(TYPE_ARGUMENT);
createEReference(typeArgumentEClass, TYPE_ARGUMENT__OWNING_GENERIC_TYPE);
constraintEClass = createEClass(CONSTRAINT);
createEAttribute(constraintEClass, CONSTRAINT__KIND);
createEReference(constraintEClass, CONSTRAINT__NAMESPACE);
createEReference(constraintEClass, CONSTRAINT__SPECIFICATION);
createEReference(constraintEClass, CONSTRAINT__CONSTRAINED_ELEMENT);
createEReference(constraintEClass, CONSTRAINT__DEFINED_FEATURE);
expressionEClass = createEClass(EXPRESSION);
createEAttribute(expressionEClass, EXPRESSION__BODY);
createEAttribute(expressionEClass, EXPRESSION__LANGUAGE);
createEReference(expressionEClass, EXPRESSION__CONSTRAINT);
associationPropertyEClass = createEClass(ASSOCIATION_PROPERTY);
createEReference(associationPropertyEClass,
ASSOCIATION_PROPERTY__INVERSE_ASSOCIATION_PROPERTIES);
// Create enums
primitiveTypeKindEEnum = createEEnum(PRIMITIVE_TYPE_KIND);
parameterDirectionKindEEnum = createEEnum(PARAMETER_DIRECTION_KIND);
constraintKindEEnum = createEEnum(CONSTRAINT_KIND);
// Create data types
cloneNotSupportedExceptionEDataType =
createEDataType(CLONE_NOT_SUPPORTED_EXCEPTION);
}
/**
* <!-- 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
DatatypesPackage theDatatypesPackage =
(DatatypesPackage) EPackage.Registry.INSTANCE
.getEPackage(DatatypesPackage.eNS_URI);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
typedElementEClass.getESuperTypes().add(this.getNamedElement());
featureEClass.getESuperTypes().add(this.getTypedElement());
genericElementEClass.getESuperTypes().add(this.getNamedElement());
namespaceEClass.getESuperTypes().add(this.getNamedElement());
namespaceEClass.getESuperTypes().add(this.getGenericElement());
typeEClass.getESuperTypes().add(this.getNamedElement());
typeEClass.getESuperTypes().add(this.getConstrainableElement());
typeEClass.getESuperTypes().add(this.getGenericElement());
primitiveTypeEClass.getESuperTypes().add(this.getType());
enumerationEClass.getESuperTypes().add(this.getType());
enumerationLiteralEClass.getESuperTypes().add(this.getNamedElement());
propertyEClass.getESuperTypes().add(this.getFeature());
propertyEClass.getESuperTypes().add(this.getTypedElement());
propertyEClass.getESuperTypes().add(this.getNamedElement());
propertyEClass.getESuperTypes().add(this.getConstrainableElement());
operationEClass.getESuperTypes().add(this.getFeature());
operationEClass.getESuperTypes().add(this.getTypedElement());
operationEClass.getESuperTypes().add(this.getNamedElement());
operationEClass.getESuperTypes().add(this.getConstrainableElement());
operationEClass.getESuperTypes().add(this.getGenericElement());
parameterEClass.getESuperTypes().add(this.getTypedElement());
parameterEClass.getESuperTypes().add(this.getNamedElement());
genericTypeEClass.getESuperTypes().add(this.getNamedElement());
parameterGenericTypeEClass.getESuperTypes().add(this.getGenericType());
complexGenericTypeEClass.getESuperTypes().add(this.getGenericType());
typeParameterEClass.getESuperTypes().add(this.getNamedElement());
typeArgumentEClass.getESuperTypes().add(this.getTypedElement());
constraintEClass.getESuperTypes().add(this.getNamedElement());
associationPropertyEClass.getESuperTypes().add(this.getProperty());
// Initialize classes and features; add operations and parameters
initEClass(namedElementEClass, NamedElement.class,
"NamedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(
getNamedElement_Name(),
theDatatypesPackage.getString(),
"name", "", 1, 1, NamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
initEAttribute(
getNamedElement_QualifiedName(),
theDatatypesPackage.getString(),
"qualifiedName", null, 0, 1, NamedElement.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getNamedElement_Owner(),
this.getNamedElement(),
null,
"owner", null, 0, 1, NamedElement.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
EOperation op =
addEOperation(namedElementEClass, this.getNamedElement(),
"clone", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEException(op, this.getCloneNotSupportedException());
addEOperation(namedElementEClass, theDatatypesPackage.getString(),
"getQualifiedNameList", 0, -1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
initEClass(typedElementEClass, TypedElement.class,
"TypedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(
getTypedElement_Type(),
this.getType(),
null,
"type", null, 1, 1, TypedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getTypedElement_GenericType(),
this.getGenericType(),
null,
"genericType", null, 0, 1, TypedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEClass(featureEClass, Feature.class,
"Feature", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(
getFeature_Static(),
theDatatypesPackage.getBoolean(),
"static", "false", 0, 1, Feature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
initEReference(
getFeature_Semantics(),
this.getConstraint(),
this.getConstraint_DefinedFeature(),
"semantics", null, 0, 1, Feature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEClass(
genericElementEClass,
GenericElement.class,
"GenericElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(
getGenericElement_OwnedTypeParameter(),
this.getTypeParameter(),
this.getTypeParameter_GenericElement(),
"ownedTypeParameter", null, 0, -1, GenericElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(genericElementEClass, this.getNamedElement(),
"bindTypeParameter", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
EGenericType g1 = createEGenericType(theDatatypesPackage.getSequence());
EGenericType g2 = createEGenericType(this.getTypeParameter());
g1.getETypeArguments().add(g2);
addEParameter(op, g1, "parameters", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
g1 = createEGenericType(theDatatypesPackage.getSequence());
g2 = createEGenericType();
g1.getETypeArguments().add(g2);
EGenericType g3 = createEGenericType(this.getType());
g2.setEUpperBound(g3);
addEParameter(op, g1, "types", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(genericElementEClass, this.getGenericElement(),
"addTypeParameter", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getTypeParameter(),
"typeParameter", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
initEClass(
constrainableElementEClass,
ConstrainableElement.class,
"ConstrainableElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEClass(namespaceEClass, Namespace.class,
"Namespace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(
getNamespace_OwnedType(),
this.getType(),
this.getType_Namespace(),
"ownedType", null, 0, -1, Namespace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getNamespace_OwnedRule(),
this.getConstraint(),
this.getConstraint_Namespace(),
"ownedRule", null, 0, -1, Namespace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getNamespace_NestedNamespace(),
this.getNamespace(),
this.getNamespace_NestingNamespace(),
"nestedNamespace", null, 0, -1, Namespace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getNamespace_NestingNamespace(),
this.getNamespace(),
this.getNamespace_NestedNamespace(),
"nestingNamespace", null, 0, 1, Namespace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(namespaceEClass, this.getNamespace(),
"addType", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getType(), "type", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(namespaceEClass, this.getNamespace(),
"addRule", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getConstraint(), "rule", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(namespaceEClass, this.getNamespace(),
"addNestedNamespace", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getNamespace(),
"namespace", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEOperation(namespaceEClass, this.getConstraint(),
"getOwnedAndNestedRules", 0, -1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(namespaceEClass, this.getType(),
"lookupType", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, theDatatypesPackage.getString(),
"name", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(namespaceEClass, this.getNamespace(),
"lookupNamespace", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, theDatatypesPackage.getString(),
"name", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEOperation(namespaceEClass, theDatatypesPackage.getBoolean(),
"removeOwnedAndNestedRules", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(namespaceEClass, theDatatypesPackage.getBoolean(),
"removeOwnedAndNestedRules", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getConstraint(),
"constraints", 0, -1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
initEClass(typeEClass, Type.class,
"Type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(
getType_Namespace(),
this.getNamespace(),
this.getNamespace_OwnedType(),
"namespace", null, 0, 1, Type.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getType_OwnedOperation(),
this.getOperation(),
this.getOperation_OwningType(),
"ownedOperation", null, 0, -1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getType_OwnedProperty(),
this.getProperty(),
this.getProperty_OwningType(),
"ownedProperty", null, 0, -1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getType_SuperType(),
this.getType(),
null,
"superType", null, 0, -1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getType_GenericSuperType(),
this.getGenericType(),
null,
"genericSuperType", null, 0, -1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(typeEClass, theDatatypesPackage.getBoolean(),
"conformsTo", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getType(), "other", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(typeEClass, this.getType(),
"commonSuperType", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getType(), "other", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(typeEClass, null,
"allProperties", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
g1 = createEGenericType(theDatatypesPackage.getSequence());
g2 = createEGenericType(this.getProperty());
g1.getETypeArguments().add(g2);
initEOperation(op, g1);
op =
addEOperation(typeEClass, null,
"allOperations", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
g1 = createEGenericType(theDatatypesPackage.getSequence());
g2 = createEGenericType(this.getOperation());
g1.getETypeArguments().add(g2);
initEOperation(op, g1);
op =
addEOperation(typeEClass, this.getProperty(),
"lookupProperty", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, theDatatypesPackage.getString(),
"name", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(typeEClass, this.getOperation(),
"lookupOperation", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, theDatatypesPackage.getString(),
"name", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
g1 = createEGenericType(theDatatypesPackage.getSequence());
g2 = createEGenericType(this.getType());
g1.getETypeArguments().add(g2);
addEParameter(op, g1, "paramTypes", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(typeEClass, this.getType(),
"addProperty", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getProperty(),
"property", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(typeEClass, this.getType(),
"addOperation", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getOperation(),
"operation", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(typeEClass, this.getType(),
"addSuperType", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getType(), "type", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(typeEClass, theDatatypesPackage.getBoolean(),
"removeProperty", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getProperty(),
"property", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(typeEClass, theDatatypesPackage.getBoolean(),
"removeOperation", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getOperation(),
"operation", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEOperation(typeEClass, this.getProperty(),
"getIDProperties", 0, -1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
initEClass(
primitiveTypeEClass,
PrimitiveType.class,
"PrimitiveType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(
getPrimitiveType_Kind(),
this.getPrimitiveTypeKind(),
"kind", "Unknown", 1, 1, PrimitiveType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
initEClass(enumerationEClass, Enumeration.class,
"Enumeration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(
getEnumeration_OwnedLiteral(),
this.getEnumerationLiteral(),
this.getEnumerationLiteral_Enumeration(),
"ownedLiteral", null, 0, -1, Enumeration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(enumerationEClass, this.getEnumeration(),
"addLiteral", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getEnumerationLiteral(),
"literal", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(enumerationEClass, this.getEnumerationLiteral(),
"lookupLiteral", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, theDatatypesPackage.getString(),
"name", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
initEClass(
enumerationLiteralEClass,
EnumerationLiteral.class,
"EnumerationLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(
getEnumerationLiteral_Enumeration(),
this.getEnumeration(),
this.getEnumeration_OwnedLiteral(),
"enumeration", null, 0, 1, EnumerationLiteral.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEClass(propertyEClass, Property.class,
"Property", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(
getProperty_OwningType(),
this.getType(),
this.getType_OwnedProperty(),
"owningType", null, 0, 1, Property.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(propertyEClass, theDatatypesPackage.getBoolean(),
"cmpSlots", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getProperty(), "p", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEOperation(propertyEClass, ecorePackage.getEBoolean(),
"isIdentifier", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
initEClass(operationEClass, Operation.class,
"Operation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(
getOperation_OwningType(),
this.getType(),
this.getType_OwnedOperation(),
"owningType", null, 0, 1, Operation.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getOperation_OwnedParameter(),
this.getParameter(),
this.getParameter_Operation(),
"ownedParameter", null, 0, -1, Operation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getOperation_InputParameter(),
this.getParameter(),
null,
"inputParameter", null, 0, -1, Operation.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getOperation_OutputParameter(),
this.getParameter(),
null,
"outputParameter", null, 0, -1, Operation.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getOperation_ReturnParameter(),
this.getParameter(),
null,
"returnParameter", null, 0, 1, Operation.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getOperation_SignatureParameter(),
this.getParameter(),
null,
"signatureParameter", null, 0, -1, Operation.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(operationEClass, theDatatypesPackage.getBoolean(),
"hasMatchingSignature", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
g1 = createEGenericType(theDatatypesPackage.getSequence());
g2 = createEGenericType(this.getType());
g1.getETypeArguments().add(g2);
addEParameter(op, g1, "paramTypes", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(operationEClass, this.getOperation(),
"addParameter", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getParameter(), "param", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
initEClass(parameterEClass, Parameter.class,
"Parameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(
getParameter_Kind(),
this.getParameterDirectionKind(),
"kind", "in", 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
initEReference(
getParameter_Operation(),
this.getOperation(),
this.getOperation_OwnedParameter(),
"operation", null, 0, 1, Parameter.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
addEOperation(parameterEClass, this.getProperty(),
"asProperty", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
initEClass(genericTypeEClass, GenericType.class,
"GenericType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
op =
addEOperation(genericTypeEClass, theDatatypesPackage.getBoolean(),
"bindGenericType", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
g1 = createEGenericType(theDatatypesPackage.getSequence());
g2 = createEGenericType(this.getTypeParameter());
g1.getETypeArguments().add(g2);
addEParameter(op, g1, "parameters", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
g1 = createEGenericType(theDatatypesPackage.getSequence());
g2 = createEGenericType();
g1.getETypeArguments().add(g2);
g3 = createEGenericType(this.getType());
g2.setEUpperBound(g3);
addEParameter(op, g1, "types", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getTypedElement(),
"typedElement", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(genericTypeEClass, theDatatypesPackage.getBoolean(),
"bindGenericSuperType", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
g1 = createEGenericType(theDatatypesPackage.getSequence());
g2 = createEGenericType(this.getTypeParameter());
g1.getETypeArguments().add(g2);
addEParameter(op, g1, "parameters", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
g1 = createEGenericType(theDatatypesPackage.getSequence());
g2 = createEGenericType();
g1.getETypeArguments().add(g2);
g3 = createEGenericType(this.getType());
g2.setEUpperBound(g3);
addEParameter(op, g1, "types", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getType(), "subType", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(genericTypeEClass, theDatatypesPackage.getBoolean(),
"isConformant", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getType(), "type", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
initEClass(
parameterGenericTypeEClass,
ParameterGenericType.class,
"ParameterGenericType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(
getParameterGenericType_TypeParameter(),
this.getTypeParameter(),
null,
"typeParameter", null, 0, 1, ParameterGenericType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEClass(
complexGenericTypeEClass,
ComplexGenericType.class,
"ComplexGenericType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(
getComplexGenericType_UnboundType(),
this.getType(),
null,
"unboundType", null, 0, 1, ComplexGenericType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getComplexGenericType_TypeArgument(),
this.getTypeArgument(),
this.getTypeArgument_OwningGenericType(),
"typeArgument", null, 0, -1, ComplexGenericType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(complexGenericTypeEClass, this.getComplexGenericType(),
"addTypeArgument", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getTypeArgument(),
"typeArgument", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
initEClass(
typeParameterEClass,
TypeParameter.class,
"TypeParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(
getTypeParameter_GenericElement(),
this.getGenericElement(),
this.getGenericElement_OwnedTypeParameter(),
"genericElement", null, 0, 1, TypeParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEClass(
typeArgumentEClass,
TypeArgument.class,
"TypeArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(
getTypeArgument_OwningGenericType(),
this.getComplexGenericType(),
this.getComplexGenericType_TypeArgument(),
"owningGenericType", null, 0, 1, TypeArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEClass(constraintEClass, Constraint.class,
"Constraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(
getConstraint_Kind(),
this.getConstraintKind(),
"kind", null, 1, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getConstraint_Namespace(),
this.getNamespace(),
this.getNamespace_OwnedRule(),
"namespace", null, 0, 1, Constraint.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getConstraint_Specification(),
this.getExpression(),
this.getExpression_Constraint(),
"specification", null, 1, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getConstraint_ConstrainedElement(),
this.getConstrainableElement(),
null,
"constrainedElement", null, 0, -1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getConstraint_DefinedFeature(),
this.getFeature(),
this.getFeature_Semantics(),
"definedFeature", null, 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(constraintEClass, this.getConstraint(),
"addConstrainedElement", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getConstrainableElement(),
"constrainedElement", 1, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEOperation(constraintEClass, theDatatypesPackage.getBoolean(),
"hasStaticContext", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
initEClass(expressionEClass, Expression.class,
"Expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(
getExpression_Body(),
theDatatypesPackage.getString(),
"body", null, 0, 1, Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEAttribute(
getExpression_Language(),
theDatatypesPackage.getString(),
"language", null, 0, 1, Expression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(
getExpression_Constraint(),
this.getConstraint(),
this.getConstraint_Specification(),
"constraint", null, 0, 1, Expression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEClass(
associationPropertyEClass,
AssociationProperty.class,
"AssociationProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(
getAssociationProperty_InverseAssociationProperties(),
this.getAssociationProperty(),
null,
"inverseAssociationProperties", null, 0, -1, AssociationProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(associationPropertyEClass, null,
"addAssociation", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getAssociationProperty(),
"bProperty", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(associationPropertyEClass, this.getAssociationProperty(),
"getAssociation", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, theDatatypesPackage.getString(),
"propName", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(associationPropertyEClass, null,
"removeAssociation", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getAssociationProperty(),
"bProperty", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(associationPropertyEClass,
theDatatypesPackage.getBoolean(),
"isInverseAssociation", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getAssociationProperty(),
"bProperty", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
op =
addEOperation(associationPropertyEClass, null,
"addAssociations", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEParameter(op, this.getAssociationProperty(),
"bProperty", 0, -1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
addEOperation(associationPropertyEClass, theDatatypesPackage.getBoolean(),
"isNavigable", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
// Initialize enums and add enum literals
initEEnum(primitiveTypeKindEEnum, PrimitiveTypeKind.class,
"PrimitiveTypeKind"); //$NON-NLS-1$
addEEnumLiteral(primitiveTypeKindEEnum, PrimitiveTypeKind.UNKNOWN);
addEEnumLiteral(primitiveTypeKindEEnum, PrimitiveTypeKind.INTEGER);
addEEnumLiteral(primitiveTypeKindEEnum, PrimitiveTypeKind.REAL);
addEEnumLiteral(primitiveTypeKindEEnum, PrimitiveTypeKind.BOOLEAN);
addEEnumLiteral(primitiveTypeKindEEnum, PrimitiveTypeKind.STRING);
addEEnumLiteral(primitiveTypeKindEEnum, PrimitiveTypeKind.VOID);
initEEnum(parameterDirectionKindEEnum, ParameterDirectionKind.class,
"ParameterDirectionKind"); //$NON-NLS-1$
addEEnumLiteral(parameterDirectionKindEEnum, ParameterDirectionKind.IN);
addEEnumLiteral(parameterDirectionKindEEnum, ParameterDirectionKind.OUT);
addEEnumLiteral(parameterDirectionKindEEnum, ParameterDirectionKind.INOUT);
addEEnumLiteral(parameterDirectionKindEEnum, ParameterDirectionKind.RETURN);
initEEnum(constraintKindEEnum, ConstraintKind.class, "ConstraintKind"); //$NON-NLS-1$
addEEnumLiteral(constraintKindEEnum, ConstraintKind.INVARIANT);
addEEnumLiteral(constraintKindEEnum, ConstraintKind.DEFINITION);
addEEnumLiteral(constraintKindEEnum, ConstraintKind.PRECONDITION);
addEEnumLiteral(constraintKindEEnum, ConstraintKind.POSTCONDITION);
addEEnumLiteral(constraintKindEEnum, ConstraintKind.INITIAL);
addEEnumLiteral(constraintKindEEnum, ConstraintKind.DERIVED);
addEEnumLiteral(constraintKindEEnum, ConstraintKind.BODY);
// Initialize data types
initEDataType(
cloneNotSupportedExceptionEDataType,
CloneNotSupportedException.class,
"CloneNotSupportedException", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
// Create resource
createResource(eNS_URI);
}
} // PivotModelPackageImpl