/*******************************************************************************
* Copyright (c) 2006-2012
* Software Technology Group, Dresden University of Technology
* DevBoost GmbH, Berlin, Amtsgericht Charlottenburg, HRB 140026
*
* 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:
* Software Technology Group - TU Dresden, Germany;
* DevBoost GmbH - Berlin, Germany
* - initial API and implementation
******************************************************************************/
/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.reuseware.sokan.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.impl.EPackageImpl;
import org.reuseware.sokan.Artifact;
import org.reuseware.sokan.Constraint;
import org.reuseware.sokan.FacetedRequest;
import org.reuseware.sokan.FacetedResponse;
import org.reuseware.sokan.Filter;
import org.reuseware.sokan.IdentifiableElement;
import org.reuseware.sokan.IndexMetaData;
import org.reuseware.sokan.IndexRow;
import org.reuseware.sokan.IndexTransaction;
import org.reuseware.sokan.SokanFactory;
import org.reuseware.sokan.SokanPackage;
import org.reuseware.sokan.Store;
/**
* <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!--
* end-user-doc -->
* @generated
*/
public class SokanPackageImpl extends EPackageImpl implements SokanPackage {
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass identifiableElementEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass idEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass artifactEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass indexRowEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass indexMetaDataEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass storeEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass filterEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass indexTransactionEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass facetedRequestEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass constraintEClass = null;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
private EClass facetedResponseEClass = 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.reuseware.sokan.SokanPackage#eNS_URI
* @see #init()
* @generated
*/
private SokanPackageImpl() {
super(eNS_URI, SokanFactory.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 SokanPackage#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 SokanPackage init() {
if (isInited) return (SokanPackage)EPackage.Registry.INSTANCE.getEPackage(SokanPackage.eNS_URI);
// Obtain or create and register package
SokanPackageImpl theSokanPackage = (SokanPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof SokanPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new SokanPackageImpl());
isInited = true;
// Create package meta-data objects
theSokanPackage.createPackageContents();
// Initialize created meta-data
theSokanPackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
theSokanPackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(SokanPackage.eNS_URI, theSokanPackage);
return theSokanPackage;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EClass getIdentifiableElement() {
return identifiableElementEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EReference getIdentifiableElement_Id() {
return (EReference)identifiableElementEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EClass getID() {
return idEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EAttribute getID_Segments() {
return (EAttribute)idEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EClass getArtifact() {
return artifactEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EReference getArtifact_Model() {
return (EReference)artifactEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EReference getArtifact_MetaInformation() {
return (EReference)artifactEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EReference getArtifact_IndexRepresentation() {
return (EReference)artifactEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EClass getIndexRow() {
return indexRowEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EReference getIndexRow_ArtifactID() {
return (EReference)indexRowEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EAttribute getIndexRow_PhyURI() {
return (EAttribute)indexRowEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getIndexRow_MetaData() {
return (EReference)indexRowEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getIndexRow_Generated() {
return (EAttribute)indexRowEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getIndexMetaData() {
return indexMetaDataEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getIndexMetaData_MultiValueFields() {
return (EAttribute)indexMetaDataEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getIndexMetaData_SingleValueFields() {
return (EAttribute)indexMetaDataEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EClass getStore() {
return storeEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EReference getStore_Filters() {
return (EReference)storeEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EAttribute getStore_UriBuffer() {
return (EAttribute)storeEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EClass getFilter() {
return filterEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EAttribute getFilter_Pattern() {
return (EAttribute)filterEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EClass getIndexTransaction() {
return indexTransactionEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EReference getIndexTransaction_RemArtifacts() {
return (EReference)indexTransactionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EReference getIndexTransaction_AddArtifacts() {
return (EReference)indexTransactionEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EReference getIndexTransaction_UpdateArtifacts() {
return (EReference)indexTransactionEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EClass getFacetedRequest() {
return facetedRequestEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EReference getFacetedRequest_Constraints() {
return (EReference)facetedRequestEClass.getEStructuralFeatures().get(4);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getConstraint() {
return constraintEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getConstraint_Name() {
return (EAttribute)constraintEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getConstraint_Values() {
return (EAttribute)constraintEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EAttribute getFacetedRequest_FacetFields() {
return (EAttribute)facetedRequestEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EAttribute getFacetedRequest_KeywordSearchString() {
return (EAttribute)facetedRequestEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EAttribute getFacetedRequest_Rows() {
return (EAttribute)facetedRequestEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EAttribute getFacetedRequest_Offset() {
return (EAttribute)facetedRequestEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EClass getFacetedResponse() {
return facetedResponseEClass;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EAttribute getFacetedResponse_ValueCountMap() {
return (EAttribute)facetedResponseEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EReference getFacetedResponse_Content() {
return (EReference)facetedResponseEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EReference getFacetedResponse_Query() {
return (EReference)facetedResponseEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public SokanFactory getSokanFactory() {
return (SokanFactory)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
identifiableElementEClass = createEClass(IDENTIFIABLE_ELEMENT);
createEReference(identifiableElementEClass, IDENTIFIABLE_ELEMENT__ID);
idEClass = createEClass(ID);
createEAttribute(idEClass, ID__SEGMENTS);
artifactEClass = createEClass(ARTIFACT);
createEReference(artifactEClass, ARTIFACT__MODEL);
createEReference(artifactEClass, ARTIFACT__META_INFORMATION);
createEReference(artifactEClass, ARTIFACT__INDEX_REPRESENTATION);
indexRowEClass = createEClass(INDEX_ROW);
createEReference(indexRowEClass, INDEX_ROW__ARTIFACT_ID);
createEAttribute(indexRowEClass, INDEX_ROW__PHY_URI);
createEReference(indexRowEClass, INDEX_ROW__META_DATA);
createEAttribute(indexRowEClass, INDEX_ROW__GENERATED);
indexMetaDataEClass = createEClass(INDEX_META_DATA);
createEAttribute(indexMetaDataEClass, INDEX_META_DATA__MULTI_VALUE_FIELDS);
createEAttribute(indexMetaDataEClass, INDEX_META_DATA__SINGLE_VALUE_FIELDS);
storeEClass = createEClass(STORE);
createEReference(storeEClass, STORE__FILTERS);
createEAttribute(storeEClass, STORE__URI_BUFFER);
filterEClass = createEClass(FILTER);
createEAttribute(filterEClass, FILTER__PATTERN);
indexTransactionEClass = createEClass(INDEX_TRANSACTION);
createEReference(indexTransactionEClass, INDEX_TRANSACTION__REM_ARTIFACTS);
createEReference(indexTransactionEClass, INDEX_TRANSACTION__ADD_ARTIFACTS);
createEReference(indexTransactionEClass, INDEX_TRANSACTION__UPDATE_ARTIFACTS);
facetedResponseEClass = createEClass(FACETED_RESPONSE);
createEAttribute(facetedResponseEClass, FACETED_RESPONSE__VALUE_COUNT_MAP);
createEReference(facetedResponseEClass, FACETED_RESPONSE__CONTENT);
createEReference(facetedResponseEClass, FACETED_RESPONSE__QUERY);
facetedRequestEClass = createEClass(FACETED_REQUEST);
createEAttribute(facetedRequestEClass, FACETED_REQUEST__FACET_FIELDS);
createEAttribute(facetedRequestEClass, FACETED_REQUEST__ROWS);
createEAttribute(facetedRequestEClass, FACETED_REQUEST__OFFSET);
createEAttribute(facetedRequestEClass, FACETED_REQUEST__KEYWORD_SEARCH_STRING);
createEReference(facetedRequestEClass, FACETED_REQUEST__CONSTRAINTS);
constraintEClass = createEClass(CONSTRAINT);
createEAttribute(constraintEClass, CONSTRAINT__NAME);
createEAttribute(constraintEClass, CONSTRAINT__VALUES);
}
/**
* <!-- 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
artifactEClass.getESuperTypes().add(this.getIdentifiableElement());
// Initialize classes and features; add operations and parameters
initEClass(identifiableElementEClass, IdentifiableElement.class, "IdentifiableElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getIdentifiableElement_Id(), this.getID(), null, "id", null, 1, 1, IdentifiableElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(idEClass, org.reuseware.sokan.ID.class, "ID", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getID_Segments(), ecorePackage.getEString(), "segments", null, 0, -1, org.reuseware.sokan.ID.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(artifactEClass, Artifact.class, "Artifact", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getArtifact_Model(), ecorePackage.getEObject(), null, "model", null, 0, -1, Artifact.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getArtifact_MetaInformation(), ecorePackage.getEObject(), null, "metaInformation", null, 0, 1, Artifact.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getArtifact_IndexRepresentation(), this.getIndexRow(), null, "indexRepresentation", null, 1, 1, Artifact.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(indexRowEClass, IndexRow.class, "IndexRow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getIndexRow_ArtifactID(), this.getID(), null, "artifactID", null, 1, 1, IndexRow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getIndexRow_PhyURI(), ecorePackage.getEString(), "phyURI", null, 0, 1, IndexRow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getIndexRow_MetaData(), this.getIndexMetaData(), null, "metaData", null, 1, 1, IndexRow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getIndexRow_Generated(), ecorePackage.getEBoolean(), "generated", null, 0, 1, IndexRow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(indexMetaDataEClass, IndexMetaData.class, "IndexMetaData", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
EGenericType g1 = createEGenericType(ecorePackage.getEMap());
EGenericType g2 = createEGenericType(ecorePackage.getEString());
g1.getETypeArguments().add(g2);
g2 = createEGenericType(ecorePackage.getEEList());
g1.getETypeArguments().add(g2);
EGenericType g3 = createEGenericType(ecorePackage.getEString());
g2.getETypeArguments().add(g3);
initEAttribute(getIndexMetaData_MultiValueFields(), g1, "multiValueFields", null, 0, 1, IndexMetaData.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
g1 = createEGenericType(ecorePackage.getEMap());
g2 = createEGenericType(ecorePackage.getEString());
g1.getETypeArguments().add(g2);
g2 = createEGenericType(ecorePackage.getEString());
g1.getETypeArguments().add(g2);
initEAttribute(getIndexMetaData_SingleValueFields(), g1, "singleValueFields", null, 0, 1, IndexMetaData.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
addEOperation(indexMetaDataEClass, ecorePackage.getEBoolean(), "isEmpty", 0, 1, IS_UNIQUE, IS_ORDERED);
EOperation op = addEOperation(indexMetaDataEClass, null, "putAll", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getIndexMetaData(), "metaData", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(indexMetaDataEClass, null, "putMultiple", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "field", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "value", 0, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(indexMetaDataEClass, null, "putSingle", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "field", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEString(), "value", 0, 1, IS_UNIQUE, IS_ORDERED);
initEClass(storeEClass, Store.class, "Store", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getStore_Filters(), this.getFilter(), null, "filters", null, 0, -1, Store.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getStore_UriBuffer(), ecorePackage.getEString(), "uriBuffer", null, 0, 1, Store.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(filterEClass, Filter.class, "Filter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getFilter_Pattern(), ecorePackage.getEString(), "pattern", null, 1, 1, Filter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(indexTransactionEClass, IndexTransaction.class, "IndexTransaction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getIndexTransaction_RemArtifacts(), this.getID(), null, "remArtifacts", null, 0, -1, IndexTransaction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getIndexTransaction_AddArtifacts(), this.getIndexRow(), null, "addArtifacts", null, 0, -1, IndexTransaction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getIndexTransaction_UpdateArtifacts(), this.getIndexRow(), null, "updateArtifacts", null, 0, -1, IndexTransaction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(facetedResponseEClass, FacetedResponse.class, "FacetedResponse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
g1 = createEGenericType(ecorePackage.getEMap());
g2 = createEGenericType(ecorePackage.getEString());
g1.getETypeArguments().add(g2);
g2 = createEGenericType(ecorePackage.getEMap());
g1.getETypeArguments().add(g2);
g3 = createEGenericType(ecorePackage.getEString());
g2.getETypeArguments().add(g3);
g3 = createEGenericType(ecorePackage.getELongObject());
g2.getETypeArguments().add(g3);
initEAttribute(getFacetedResponse_ValueCountMap(), g1, "valueCountMap", null, 0, 1, FacetedResponse.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getFacetedResponse_Content(), this.getIndexRow(), null, "content", null, 0, -1, FacetedResponse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getFacetedResponse_Query(), this.getFacetedRequest(), null, "query", null, 1, 1, FacetedResponse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(facetedRequestEClass, FacetedRequest.class, "FacetedRequest", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
g1 = createEGenericType(ecorePackage.getEEList());
g2 = createEGenericType(ecorePackage.getEString());
g1.getETypeArguments().add(g2);
initEAttribute(getFacetedRequest_FacetFields(), g1, "facetFields", null, 0, 1, FacetedRequest.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getFacetedRequest_Rows(), ecorePackage.getEInt(), "rows", "-1", 0, 1, FacetedRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getFacetedRequest_Offset(), ecorePackage.getEInt(), "offset", "0", 0, 1, FacetedRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getFacetedRequest_KeywordSearchString(), ecorePackage.getEString(), "keywordSearchString", null, 0, 1, FacetedRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getFacetedRequest_Constraints(), this.getConstraint(), null, "constraints", null, 0, -1, FacetedRequest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(constraintEClass, Constraint.class, "Constraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getConstraint_Name(), ecorePackage.getEString(), "name", null, 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
g1 = createEGenericType(ecorePackage.getEEList());
g2 = createEGenericType(ecorePackage.getEString());
g1.getETypeArguments().add(g2);
initEAttribute(getConstraint_Values(), g1, "values", null, 0, 1, Constraint.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
// Create resource
createResource(eNS_URI);
}
} // SokanPackageImpl