/**
* <copyright>
* </copyright>
*
* $Id$
*/
package com.hundsun.ares.studio.model.reference.impl;
import java.util.Map;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
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 com.hundsun.ares.studio.core.IARESBundle;
import com.hundsun.ares.studio.core.IARESProject;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.core.IObjectProvider;
import com.hundsun.ares.studio.model.reference.ProjectReferenceCollection;
import com.hundsun.ares.studio.model.reference.ProjectRelationCollection;
import com.hundsun.ares.studio.model.reference.ReferenceFactory;
import com.hundsun.ares.studio.model.reference.ReferenceInfo;
import com.hundsun.ares.studio.model.reference.ReferencePackage;
import com.hundsun.ares.studio.model.reference.ReferenceTable;
import com.hundsun.ares.studio.model.reference.RelationInfo;
import com.hundsun.ares.studio.model.reference.RelationTable;
import com.hundsun.ares.studio.model.reference.IRelations;
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Package</b>.
* <!-- end-user-doc -->
* @generated
*/
public class ReferencePackageImpl extends EPackageImpl implements ReferencePackage {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass referenceTableEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass projectReferenceCollectionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass projectToReferencesMapEntryEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass referenceMapEntryEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass referenceInfoEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass relationTableEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass projectToRelationsMapEntryEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass projectRelationCollectionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass relationInfoEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EDataType iaresProjectEDataType = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EDataType iaresResourceEDataType = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EDataType iObjectProviderEDataType = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EDataType iaresBundleEDataType = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EDataType relationsEDataType = 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 com.hundsun.ares.studio.model.reference.ReferencePackage#eNS_URI
* @see #init()
* @generated
*/
private ReferencePackageImpl() {
super(eNS_URI, ReferenceFactory.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 ReferencePackage#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 ReferencePackage init() {
if (isInited) return (ReferencePackage)EPackage.Registry.INSTANCE.getEPackage(ReferencePackage.eNS_URI);
// Obtain or create and register package
ReferencePackageImpl theReferencePackage = (ReferencePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ReferencePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ReferencePackageImpl());
isInited = true;
// Create package meta-data objects
theReferencePackage.createPackageContents();
// Initialize created meta-data
theReferencePackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
theReferencePackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(ReferencePackage.eNS_URI, theReferencePackage);
return theReferencePackage;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getReferenceTable() {
return referenceTableEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getReferenceTable_Projects() {
return (EReference)referenceTableEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getProjectReferenceCollection() {
return projectReferenceCollectionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getProjectReferenceCollection_References() {
return (EReference)projectReferenceCollectionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getProjectToReferencesMapEntry() {
return projectToReferencesMapEntryEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getProjectToReferencesMapEntry_Key() {
return (EAttribute)projectToReferencesMapEntryEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getProjectToReferencesMapEntry_Value() {
return (EReference)projectToReferencesMapEntryEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getReferenceMapEntry() {
return referenceMapEntryEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getReferenceMapEntry_Key() {
return (EAttribute)referenceMapEntryEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getReferenceMapEntry_Value() {
return (EReference)referenceMapEntryEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getReferenceInfo() {
return referenceInfoEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getReferenceInfo_RefName() {
return (EAttribute)referenceInfoEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getReferenceInfo_RefNamespace() {
return (EAttribute)referenceInfoEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getReferenceInfo_RefType() {
return (EAttribute)referenceInfoEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getReferenceInfo_Resource() {
return (EAttribute)referenceInfoEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getReferenceInfo_ObjectProvider() {
return (EAttribute)referenceInfoEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getRelationTable() {
return relationTableEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getRelationTable_Projects() {
return (EReference)relationTableEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getProjectToRelationsMapEntry() {
return projectToRelationsMapEntryEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getProjectToRelationsMapEntry_Key() {
return (EAttribute)projectToRelationsMapEntryEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getProjectToRelationsMapEntry_Value() {
return (EReference)projectToRelationsMapEntryEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getProjectRelationCollection() {
return projectRelationCollectionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getRelationInfo() {
return relationInfoEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getRelationInfo_HostResource() {
return (EAttribute)relationInfoEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getRelationInfo_UsedRefName() {
return (EAttribute)relationInfoEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getRelationInfo_UsedRefNamespace() {
return (EAttribute)relationInfoEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getRelationInfo_UsedRefType() {
return (EAttribute)relationInfoEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EDataType getRelations() {
return relationsEDataType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EDataType getIARESProject() {
return iaresProjectEDataType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EDataType getIARESResource() {
return iaresResourceEDataType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EDataType getIObjectProvider() {
return iObjectProviderEDataType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EDataType getIARESBundle() {
return iaresBundleEDataType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ReferenceFactory getReferenceFactory() {
return (ReferenceFactory)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
referenceTableEClass = createEClass(REFERENCE_TABLE);
createEReference(referenceTableEClass, REFERENCE_TABLE__PROJECTS);
projectReferenceCollectionEClass = createEClass(PROJECT_REFERENCE_COLLECTION);
createEReference(projectReferenceCollectionEClass, PROJECT_REFERENCE_COLLECTION__REFERENCES);
projectToReferencesMapEntryEClass = createEClass(PROJECT_TO_REFERENCES_MAP_ENTRY);
createEAttribute(projectToReferencesMapEntryEClass, PROJECT_TO_REFERENCES_MAP_ENTRY__KEY);
createEReference(projectToReferencesMapEntryEClass, PROJECT_TO_REFERENCES_MAP_ENTRY__VALUE);
referenceMapEntryEClass = createEClass(REFERENCE_MAP_ENTRY);
createEAttribute(referenceMapEntryEClass, REFERENCE_MAP_ENTRY__KEY);
createEReference(referenceMapEntryEClass, REFERENCE_MAP_ENTRY__VALUE);
referenceInfoEClass = createEClass(REFERENCE_INFO);
createEAttribute(referenceInfoEClass, REFERENCE_INFO__REF_NAME);
createEAttribute(referenceInfoEClass, REFERENCE_INFO__REF_NAMESPACE);
createEAttribute(referenceInfoEClass, REFERENCE_INFO__REF_TYPE);
createEAttribute(referenceInfoEClass, REFERENCE_INFO__RESOURCE);
createEAttribute(referenceInfoEClass, REFERENCE_INFO__OBJECT_PROVIDER);
relationTableEClass = createEClass(RELATION_TABLE);
createEReference(relationTableEClass, RELATION_TABLE__PROJECTS);
projectToRelationsMapEntryEClass = createEClass(PROJECT_TO_RELATIONS_MAP_ENTRY);
createEAttribute(projectToRelationsMapEntryEClass, PROJECT_TO_RELATIONS_MAP_ENTRY__KEY);
createEReference(projectToRelationsMapEntryEClass, PROJECT_TO_RELATIONS_MAP_ENTRY__VALUE);
projectRelationCollectionEClass = createEClass(PROJECT_RELATION_COLLECTION);
relationInfoEClass = createEClass(RELATION_INFO);
createEAttribute(relationInfoEClass, RELATION_INFO__HOST_RESOURCE);
createEAttribute(relationInfoEClass, RELATION_INFO__USED_REF_NAME);
createEAttribute(relationInfoEClass, RELATION_INFO__USED_REF_NAMESPACE);
createEAttribute(relationInfoEClass, RELATION_INFO__USED_REF_TYPE);
// Create data types
iaresProjectEDataType = createEDataType(IARES_PROJECT);
iaresResourceEDataType = createEDataType(IARES_RESOURCE);
iObjectProviderEDataType = createEDataType(IOBJECT_PROVIDER);
iaresBundleEDataType = createEDataType(IARES_BUNDLE);
relationsEDataType = createEDataType(RELATIONS);
}
/**
* <!-- 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);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
// Initialize classes and features; add operations and parameters
initEClass(referenceTableEClass, ReferenceTable.class, "ReferenceTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getReferenceTable_Projects(), this.getProjectToReferencesMapEntry(), null, "projects", null, 0, -1, ReferenceTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(projectReferenceCollectionEClass, ProjectReferenceCollection.class, "ProjectReferenceCollection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getProjectReferenceCollection_References(), this.getReferenceMapEntry(), null, "references", null, 0, -1, ProjectReferenceCollection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
EOperation op = addEOperation(projectReferenceCollectionEClass, this.getReferenceInfo(), "getReferenceInfos", 0, -1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "refType", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "refName", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "refNamespace", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(projectReferenceCollectionEClass, this.getReferenceInfo(), "getReferenceInfos", 0, -1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "refType", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "refName", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(projectReferenceCollectionEClass, this.getReferenceInfo(), "getReferenceInfos", 0, -1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "refType", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(projectReferenceCollectionEClass, null, "updateOnlyResourceOnlyRefTypecache", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "refType", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getReferenceInfo(), "referenceInfos", 0, -1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(projectReferenceCollectionEClass, this.getReferenceInfo(), "getFirstReferenceInfos", 0, -1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "refType", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "refName", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "refNamespace", 0, 1, IS_UNIQUE, IS_ORDERED);
initEClass(projectToReferencesMapEntryEClass, Map.Entry.class, "ProjectToReferencesMapEntry", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getProjectToReferencesMapEntry_Key(), this.getIARESProject(), "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getProjectToReferencesMapEntry_Value(), this.getProjectReferenceCollection(), null, "value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(referenceMapEntryEClass, Map.Entry.class, "ReferenceMapEntry", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getReferenceMapEntry_Key(), ecorePackage.getEString(), "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getReferenceMapEntry_Value(), this.getReferenceInfo(), null, "value", null, 0, -1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(referenceInfoEClass, ReferenceInfo.class, "ReferenceInfo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getReferenceInfo_RefName(), ecorePackage.getEString(), "refName", null, 0, 1, ReferenceInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getReferenceInfo_RefNamespace(), ecorePackage.getEString(), "refNamespace", null, 0, 1, ReferenceInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getReferenceInfo_RefType(), ecorePackage.getEString(), "refType", null, 0, 1, ReferenceInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getReferenceInfo_Resource(), this.getIARESResource(), "resource", null, 0, 1, ReferenceInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getReferenceInfo_ObjectProvider(), this.getIObjectProvider(), "objectProvider", null, 0, 1, ReferenceInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
addEOperation(referenceInfoEClass, ecorePackage.getEJavaObject(), "getObject", 0, 1, IS_UNIQUE, IS_ORDERED);
initEClass(relationTableEClass, RelationTable.class, "RelationTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getRelationTable_Projects(), this.getProjectToRelationsMapEntry(), null, "projects", null, 0, -1, RelationTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(projectToRelationsMapEntryEClass, Map.Entry.class, "ProjectToRelationsMapEntry", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getProjectToRelationsMapEntry_Key(), this.getIARESProject(), "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getProjectToRelationsMapEntry_Value(), this.getProjectRelationCollection(), null, "value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(projectRelationCollectionEClass, ProjectRelationCollection.class, "ProjectRelationCollection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
op = addEOperation(projectRelationCollectionEClass, this.getRelationInfo(), "getRelationInfos", 0, -1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "refType", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "refName", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "refNamespace", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(projectRelationCollectionEClass, this.getRelationInfo(), "getRelationInfos", 0, -1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "refType", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "refName", 0, 1, IS_UNIQUE, IS_ORDERED);
addEOperation(projectRelationCollectionEClass, this.getRelations(), "getRelations", 0, 1, IS_UNIQUE, IS_ORDERED);
initEClass(relationInfoEClass, RelationInfo.class, "RelationInfo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getRelationInfo_HostResource(), this.getIARESResource(), "hostResource", null, 0, 1, RelationInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getRelationInfo_UsedRefName(), ecorePackage.getEString(), "usedRefName", null, 0, 1, RelationInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getRelationInfo_UsedRefNamespace(), ecorePackage.getEString(), "usedRefNamespace", null, 0, 1, RelationInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getRelationInfo_UsedRefType(), ecorePackage.getEString(), "usedRefType", null, 0, 1, RelationInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
// Initialize data types
initEDataType(iaresProjectEDataType, IARESProject.class, "IARESProject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
initEDataType(iaresResourceEDataType, IARESResource.class, "IARESResource", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
initEDataType(iObjectProviderEDataType, IObjectProvider.class, "IObjectProvider", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
initEDataType(iaresBundleEDataType, IARESBundle.class, "IARESBundle", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
initEDataType(relationsEDataType, IRelations.class, "Relations", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
// Create resource
createResource(eNS_URI);
}
} //ReferencePackageImpl