package org.eclipse.graphiti.mm;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.texo.model.ModelFactory;
import org.eclipse.emf.texo.model.ModelPackage;
import org.eclipse.emf.texo.model.ModelResolver;
import org.eclipse.emf.texo.server.store.DaoRegistry;
import org.eclipse.emf.texo.test.model.base.identifiable.IdentifiableModelPackage;
import org.eclipse.emf.texo.utils.ModelUtils;
import org.eclipse.graphiti.mm.algorithms.AlgorithmsModelPackage;
import org.eclipse.graphiti.mm.algorithms.styles.StylesModelPackage;
import org.eclipse.graphiti.mm.dao.GraphicsAlgorithmContainerDao;
import org.eclipse.graphiti.mm.dao.PropertyContainerDao;
import org.eclipse.graphiti.mm.dao.PropertyDao;
import org.eclipse.graphiti.mm.dao.StyleContainerDao;
import org.eclipse.graphiti.mm.pictograms.PictogramsModelPackage;
/**
* The <b>Package</b> for the model '<em><b>mm</b></em>'. It contains initialization code and access to the Factory to
* instantiate types of this package.
*
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public class MmModelPackage extends ModelPackage {
/**
* Is set when the package has been initialized.
*
* @generated
*/
private static boolean isInitialized = false;
/**
* The package namespace URI. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final String NS_URI = "http://eclipse.org/graphiti/mm";
/**
* The {@link ModelFactory} for this package. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final MmModelFactory MODELFACTORY = new MmModelFactory();
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int PROPERTY_CLASSIFIER_ID = 0;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int PROPERTY_DB_ID_FEATURE_ID = 0;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int PROPERTY_DB_VERSION_FEATURE_ID = 1;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int PROPERTY_KEY_FEATURE_ID = 2;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int PROPERTY_VALUE_FEATURE_ID = 3;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int PROPERTYCONTAINER_CLASSIFIER_ID = 1;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int PROPERTYCONTAINER_DB_ID_FEATURE_ID = 0;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int PROPERTYCONTAINER_DB_VERSION_FEATURE_ID = 1;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int PROPERTYCONTAINER_PROPERTIES_FEATURE_ID = 2;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int GRAPHICSALGORITHMCONTAINER_CLASSIFIER_ID = 2;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int GRAPHICSALGORITHMCONTAINER_DB_ID_FEATURE_ID = 0;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int GRAPHICSALGORITHMCONTAINER_DB_VERSION_FEATURE_ID = 1;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int GRAPHICSALGORITHMCONTAINER_PROPERTIES_FEATURE_ID = 2;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int STYLECONTAINER_CLASSIFIER_ID = 3;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int STYLECONTAINER_DB_ID_FEATURE_ID = 0;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int STYLECONTAINER_DB_VERSION_FEATURE_ID = 1;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final int STYLECONTAINER_STYLES_FEATURE_ID = 2;
/**
* The static member with the instance of this {@link ModelPackage}. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static final MmModelPackage INSTANCE = initialize();
/**
* Initializes this {@link ModelPackage}. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @return an initialized instance of this class
*
* @generated
*/
public static MmModelPackage initialize() {
if (isInitialized) {
return (MmModelPackage) ModelResolver.getInstance().getModelPackage(NS_URI);
}
final MmModelPackage modelPackage = new MmModelPackage();
ModelResolver.getInstance().registerModelPackage(modelPackage);
// read the model from the ecore file, the EPackage is registered in the EPackage.Registry
// see the ModelResolver getEPackageRegistry method
ModelUtils.readEPackagesFromFile(modelPackage);
isInitialized = true;
IdentifiableModelPackage.initialize();
StylesModelPackage.initialize();
// force the initialization of the EFactory proxy
modelPackage.getEPackage();
PictogramsModelPackage.initialize();
AlgorithmsModelPackage.initialize();
StylesModelPackage.initialize();
// register the relation between a Class and its EClassifier
ModelResolver.getInstance().registerClassModelMapping(Property.class, modelPackage.getPropertyEClass(),
modelPackage);
ModelResolver.getInstance().registerClassModelMapping(PropertyContainer.class,
modelPackage.getPropertyContainerEClass(), modelPackage);
ModelResolver.getInstance().registerClassModelMapping(GraphicsAlgorithmContainer.class,
modelPackage.getGraphicsAlgorithmContainerEClass(), modelPackage);
ModelResolver.getInstance().registerClassModelMapping(StyleContainer.class, modelPackage.getStyleContainerEClass(),
modelPackage);
DaoRegistry.getInstance().registerDao(Property.class, PropertyDao.class);
DaoRegistry.getInstance().registerDao(PropertyContainer.class, PropertyContainerDao.class);
DaoRegistry.getInstance().registerDao(GraphicsAlgorithmContainer.class, GraphicsAlgorithmContainerDao.class);
DaoRegistry.getInstance().registerDao(StyleContainer.class, StyleContainerDao.class);
// and return ourselves
return modelPackage;
}
/**
* Returns the {@link ModelFactory} of this ModelPackage. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @return the {@link MmModelFactory} instance.
* @generated
*/
@Override
public MmModelFactory getModelFactory() {
return MODELFACTORY;
}
/**
* Returns the nsUri of the {@link EPackage} managed by this Package instance. <!-- begin-user-doc --> <!--
* end-user-doc -->
*
* @return the nsUri of the EPackage
* @generated
*/
@Override
public String getNsURI() {
return NS_URI;
}
/**
* Returns the name of the ecore file containing the ecore model of the {@link EPackage} managed here. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @return the name of the ecore file
* @generated
*/
@Override
public String getEcoreFileName() {
return "mm.ecore";
}
/**
* Returns the {@link EClass} '<em><b>Property</b></em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @return an instance of the {@link EClass} '<em><b>Property</b></em>'
* @generated
*/
public EClass getPropertyEClass() {
return (EClass) getEPackage().getEClassifiers().get(PROPERTY_CLASSIFIER_ID);
}
/**
* Returns the {@link EStructuralFeature} '<em><b>Property.key</b></em>'. <!-- begin-user-doc --> <!-- end-user-doc
* -->
*
* @return an instance of the {@link EStructuralFeature}: '<em><b>Property.key</b></em>'.
* @generated
*/
public EAttribute getProperty_Key() {
return (EAttribute) getPropertyEClass().getEAllStructuralFeatures().get(PROPERTY_KEY_FEATURE_ID);
}
/**
* Returns the {@link EStructuralFeature} '<em><b>Property.value</b></em>'. <!-- begin-user-doc --> <!-- end-user-doc
* -->
*
* @return an instance of the {@link EStructuralFeature}: '<em><b>Property.value</b></em>'.
* @generated
*/
public EAttribute getProperty_Value() {
return (EAttribute) getPropertyEClass().getEAllStructuralFeatures().get(PROPERTY_VALUE_FEATURE_ID);
}
/**
* Returns the {@link EClass} '<em><b>PropertyContainer</b></em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @return an instance of the {@link EClass} '<em><b>PropertyContainer</b></em>'
* @generated
*/
public EClass getPropertyContainerEClass() {
return (EClass) getEPackage().getEClassifiers().get(PROPERTYCONTAINER_CLASSIFIER_ID);
}
/**
* Returns the {@link EStructuralFeature} '<em><b>PropertyContainer.properties</b></em>'. <!-- begin-user-doc --> <!--
* end-user-doc -->
*
* @return an instance of the {@link EStructuralFeature}: '<em><b>PropertyContainer.properties</b></em>'.
* @generated
*/
public EReference getPropertyContainer_Properties() {
return (EReference) getPropertyContainerEClass().getEAllStructuralFeatures().get(
PROPERTYCONTAINER_PROPERTIES_FEATURE_ID);
}
/**
* Returns the {@link EClass} '<em><b>GraphicsAlgorithmContainer</b></em>'. <!-- begin-user-doc --> <!-- end-user-doc
* -->
*
* @return an instance of the {@link EClass} '<em><b>GraphicsAlgorithmContainer</b></em>'
* @generated
*/
public EClass getGraphicsAlgorithmContainerEClass() {
return (EClass) getEPackage().getEClassifiers().get(GRAPHICSALGORITHMCONTAINER_CLASSIFIER_ID);
}
/**
* Returns the {@link EClass} '<em><b>StyleContainer</b></em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @return an instance of the {@link EClass} '<em><b>StyleContainer</b></em>'
* @generated
*/
public EClass getStyleContainerEClass() {
return (EClass) getEPackage().getEClassifiers().get(STYLECONTAINER_CLASSIFIER_ID);
}
/**
* Returns the {@link EStructuralFeature} '<em><b>StyleContainer.styles</b></em>'. <!-- begin-user-doc --> <!--
* end-user-doc -->
*
* @return an instance of the {@link EStructuralFeature}: '<em><b>StyleContainer.styles</b></em>'.
* @generated
*/
public EReference getStyleContainer_Styles() {
return (EReference) getStyleContainerEClass().getEAllStructuralFeatures().get(STYLECONTAINER_STYLES_FEATURE_ID);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @param eClassifier
* the {@link EClassifier}
* @return the class implementing a specific {@link EClass}.
* @generated
*/
@Override
public Class<?> getEClassifierClass(EClassifier eClassifier) {
switch (eClassifier.getClassifierID()) {
case PROPERTY_CLASSIFIER_ID:
return Property.class;
case PROPERTYCONTAINER_CLASSIFIER_ID:
return PropertyContainer.class;
case GRAPHICSALGORITHMCONTAINER_CLASSIFIER_ID:
return GraphicsAlgorithmContainer.class;
case STYLECONTAINER_CLASSIFIER_ID:
return StyleContainer.class;
default:
throw new IllegalArgumentException("The EClassifier '" + eClassifier + "' is not defined in this EPackage");
}
}
}