Package org.geotools.data.efeature.impl

Source Code of org.geotools.data.efeature.impl.EFeaturePackageImpl

/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.geotools.data.efeature.impl;

import com.vividsolutions.jts.geom.Geometry;
import java.util.List;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EGenericType;
import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.ETypeParameter;
import org.eclipse.emf.ecore.impl.EPackageImpl;

import org.geotools.data.Transaction;
import org.geotools.data.efeature.EFeature;
import org.geotools.data.efeature.EFeatureAttribute;
import org.geotools.data.efeature.EFeatureAttributeInfo;
import org.geotools.data.efeature.EFeatureFactory;
import org.geotools.data.efeature.EFeatureGeometry;
import org.geotools.data.efeature.EFeatureGeometryInfo;
import org.geotools.data.efeature.EFeatureInfo;
import org.geotools.data.efeature.EFeaturePackage;
import org.geotools.data.efeature.EFeatureProperty;
import org.geotools.data.efeature.EStructureInfo;
import org.opengis.feature.Attribute;
import org.opengis.feature.Feature;
import org.opengis.feature.GeometryAttribute;
import org.opengis.feature.Property;

/**
* <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!-- end-user-doc -->
* @generated
*
* @source $URL$
*/
public class EFeaturePackageImpl extends EPackageImpl implements EFeaturePackage {
    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    private EClass eFeatureEClass = null;

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    private EDataType featureEDataType = null;

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    private EDataType propertyEDataType = null;

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    private EDataType attributeEDataType = null;

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    private EDataType transactionEDataType = null;

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    private EDataType geometryAttributeEDataType = null;

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    private EDataType geometryEDataType = null;

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    private EDataType eStructureInfoEDataType = null;

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    private EDataType eFeatureInfoEDataType = null;

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    private EDataType eFeatureAttributeInfoEDataType = null;

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    private EDataType eFeatureGeometryInfoEDataType = null;

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    private EDataType eStructuralFeatureEDataType = null;

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    private EDataType listEDataType = null;

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    private EDataType eFeaturePropertyEDataType = null;

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    private EDataType eFeatureAttributeEDataType = null;

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    private EDataType eFeatureGeometryEDataType = 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.geotools.data.efeature.EFeaturePackage#eNS_URI
     * @see #init()
     * @generated
     */
    private EFeaturePackageImpl() {
        super(eNS_URI, EFeatureFactory.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 EFeaturePackage#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 EFeaturePackage init() {
        if (isInited) return (EFeaturePackage)EPackage.Registry.INSTANCE.getEPackage(EFeaturePackage.eNS_URI);

        // Obtain or create and register package
        EFeaturePackageImpl theEFeaturePackage = (EFeaturePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EFeaturePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new EFeaturePackageImpl());

        isInited = true;

        // Create package meta-data objects
        theEFeaturePackage.createPackageContents();

        // Initialize created meta-data
        theEFeaturePackage.initializePackageContents();

        // Mark meta-data to indicate it can't be changed
        theEFeaturePackage.freeze();

 
        // Update the registry and return the package
        EPackage.Registry.INSTANCE.put(EFeaturePackage.eNS_URI, theEFeaturePackage);
        return theEFeaturePackage;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EClass getEFeature() {
        return eFeatureEClass;
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EAttribute getEFeature_ID() {
        return (EAttribute)eFeatureEClass.getEStructuralFeatures().get(0);
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EAttribute getEFeature_Data() {
        return (EAttribute)eFeatureEClass.getEStructuralFeatures().get(1);
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EAttribute getEFeature_SRID() {
        return (EAttribute)eFeatureEClass.getEStructuralFeatures().get(2);
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EAttribute getEFeature_Default() {
        return (EAttribute)eFeatureEClass.getEStructuralFeatures().get(3);
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EAttribute getEFeature_Structure() {
        return (EAttribute)eFeatureEClass.getEStructuralFeatures().get(4);
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EDataType getEFeatureProperty() {
        return eFeaturePropertyEDataType;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EDataType getEFeatureAttribute() {
        return eFeatureAttributeEDataType;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EDataType getEFeatureGeometry() {
        return eFeatureGeometryEDataType;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EDataType getEStructuralFeature() {
        return eStructuralFeatureEDataType;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EDataType getFeature() {
        return featureEDataType;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EDataType getProperty() {
        return propertyEDataType;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EDataType getAttribute() {
        return attributeEDataType;
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EDataType getTransaction() {
        return transactionEDataType;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EDataType getGeometryAttribute() {
        return geometryAttributeEDataType;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EDataType getGeometry() {
        return geometryEDataType;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EDataType getEStructureInfo() {
        return eStructureInfoEDataType;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EDataType getEFeatureInfo() {
        return eFeatureInfoEDataType;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EDataType getEFeatureAttributeInfo() {
        return eFeatureAttributeInfoEDataType;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EDataType getEFeatureGeometryInfo() {
        return eFeatureGeometryInfoEDataType;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EDataType getList() {
        return listEDataType;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     * @generated
     */
    @Override
    public EFeatureFactory getEFeatureFactory() {
        return (EFeatureFactory)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
        eFeatureEClass = createEClass(EFEATURE);
        createEAttribute(eFeatureEClass, EFEATURE__ID);
        createEAttribute(eFeatureEClass, EFEATURE__DATA);
        createEAttribute(eFeatureEClass, EFEATURE__SRID);
        createEAttribute(eFeatureEClass, EFEATURE__DEFAULT);
        createEAttribute(eFeatureEClass, EFEATURE__STRUCTURE);

        // Create data types
        featureEDataType = createEDataType(FEATURE);
        propertyEDataType = createEDataType(PROPERTY);
        attributeEDataType = createEDataType(ATTRIBUTE);
        transactionEDataType = createEDataType(TRANSACTION);
        geometryAttributeEDataType = createEDataType(GEOMETRY_ATTRIBUTE);
        geometryEDataType = createEDataType(GEOMETRY);
        eStructureInfoEDataType = createEDataType(ESTRUCTURE_INFO);
        eFeatureInfoEDataType = createEDataType(EFEATURE_INFO);
        eFeatureAttributeInfoEDataType = createEDataType(EFEATURE_ATTRIBUTE_INFO);
        eFeatureGeometryInfoEDataType = createEDataType(EFEATURE_GEOMETRY_INFO);
        eStructuralFeatureEDataType = createEDataType(ESTRUCTURAL_FEATURE);
        listEDataType = createEDataType(LIST);
        eFeaturePropertyEDataType = createEDataType(EFEATURE_PROPERTY);
        eFeatureAttributeEDataType = createEDataType(EFEATURE_ATTRIBUTE);
        eFeatureGeometryEDataType = createEDataType(EFEATURE_GEOMETRY);
    }

    /**
     * <!-- 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
        addETypeParameter(listEDataType, "T");
        addETypeParameter(eFeaturePropertyEDataType, "V");
        ETypeParameter eFeaturePropertyEDataType_T = addETypeParameter(eFeaturePropertyEDataType, "T");
        addETypeParameter(eFeatureAttributeEDataType, "V");
        ETypeParameter eFeatureGeometryEDataType_V = addETypeParameter(eFeatureGeometryEDataType, "V");

        // Set bounds for type parameters
        EGenericType g1 = createEGenericType(this.getProperty());
        eFeaturePropertyEDataType_T.getEBounds().add(g1);
        g1 = createEGenericType(this.getGeometry());
        eFeatureGeometryEDataType_V.getEBounds().add(g1);

        // Add supertypes to classes

        // Initialize classes and features; add operations and parameters
        initEClass(eFeatureEClass, EFeature.class, "EFeature", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
        initEAttribute(getEFeature_ID(), ecorePackage.getEString(), "ID", "", 1, 1, EFeature.class, !IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
        initEAttribute(getEFeature_Data(), this.getFeature(), "data", null, 1, 1, EFeature.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
        initEAttribute(getEFeature_SRID(), ecorePackage.getEString(), "SRID", "EPSG:4326", 1, 1, EFeature.class, !IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
        initEAttribute(getEFeature_Default(), ecorePackage.getEString(), "default", "geom", 1, 1, EFeature.class, !IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
        initEAttribute(getEFeature_Structure(), this.getEFeatureInfo(), "structure", null, 1, 1, EFeature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);

        EOperation op = addEOperation(eFeatureEClass, null, "getAttributeList", 1, 1, IS_UNIQUE, IS_ORDERED);
        ETypeParameter t1 = addETypeParameter(op, "V");
        g1 = createEGenericType(ecorePackage.getEJavaClass());
        EGenericType g2 = createEGenericType(t1);
        g1.getETypeArguments().add(g2);
        addEParameter(op, g1, "valueType", 0, 1, IS_UNIQUE, IS_ORDERED);
        g1 = createEGenericType(this.getList());
        g2 = createEGenericType(this.getEFeatureAttribute());
        g1.getETypeArguments().add(g2);
        EGenericType g3 = createEGenericType(t1);
        g2.getETypeArguments().add(g3);
        initEOperation(op, g1);

        op = addEOperation(eFeatureEClass, null, "getGeometryList", 1, 1, IS_UNIQUE, IS_ORDERED);
        t1 = addETypeParameter(op, "V");
        g1 = createEGenericType(this.getGeometry());
        t1.getEBounds().add(g1);
        g1 = createEGenericType(ecorePackage.getEJavaClass());
        g2 = createEGenericType(t1);
        g1.getETypeArguments().add(g2);
        addEParameter(op, g1, "valueType", 0, 1, IS_UNIQUE, IS_ORDERED);
        g1 = createEGenericType(this.getList());
        g2 = createEGenericType(this.getEFeatureGeometry());
        g1.getETypeArguments().add(g2);
        g3 = createEGenericType(t1);
        g2.getETypeArguments().add(g3);
        initEOperation(op, g1);

        op = addEOperation(eFeatureEClass, this.getFeature(), "getData", 1, 1, IS_UNIQUE, IS_ORDERED);
        addEParameter(op, this.getTransaction(), "transaction", 1, 1, IS_UNIQUE, IS_ORDERED);

        op = addEOperation(eFeatureEClass, this.getFeature(), "setData", 1, 1, IS_UNIQUE, IS_ORDERED);
        addEParameter(op, this.getFeature(), "newData", 1, 1, IS_UNIQUE, IS_ORDERED);
        addEParameter(op, this.getTransaction(), "transaction", 1, 1, IS_UNIQUE, IS_ORDERED);

        // Initialize data types
        initEDataType(featureEDataType, Feature.class, "Feature", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
        initEDataType(propertyEDataType, Property.class, "Property", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
        initEDataType(attributeEDataType, Attribute.class, "Attribute", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
        initEDataType(transactionEDataType, Transaction.class, "Transaction", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
        initEDataType(geometryAttributeEDataType, GeometryAttribute.class, "GeometryAttribute", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
        initEDataType(geometryEDataType, Geometry.class, "Geometry", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
        initEDataType(eStructureInfoEDataType, EStructureInfo.class, "EStructureInfo", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
        initEDataType(eFeatureInfoEDataType, EFeatureInfo.class, "EFeatureInfo", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
        initEDataType(eFeatureAttributeInfoEDataType, EFeatureAttributeInfo.class, "EFeatureAttributeInfo", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
        initEDataType(eFeatureGeometryInfoEDataType, EFeatureGeometryInfo.class, "EFeatureGeometryInfo", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
        initEDataType(eStructuralFeatureEDataType, EStructuralFeature.class, "EStructuralFeature", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
        initEDataType(listEDataType, List.class, "List", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
        initEDataType(eFeaturePropertyEDataType, EFeatureProperty.class, "EFeatureProperty", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
        initEDataType(eFeatureAttributeEDataType, EFeatureAttribute.class, "EFeatureAttribute", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
        initEDataType(eFeatureGeometryEDataType, EFeatureGeometry.class, "EFeatureGeometry", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);

        // Create resource
        createResource(eNS_URI);

        // Create annotations
        // http://www.eclipse.org/emf/2002/GenModel
        createGenModelAnnotations();
    }

    /**
     * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/GenModel</b>.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected void createGenModelAnnotations() {
        String source = "http://www.eclipse.org/emf/2002/GenModel";   
        addAnnotation
          (getEFeature_Default(),
           source,
           new String[] {
             "Doumentation", "Name of default EFeatureGeometry"
           });
    }

} // EFeaturePackageImpl
TOP

Related Classes of org.geotools.data.efeature.impl.EFeaturePackageImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.