/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.geotools.data.efeature.impl;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.EObjectImpl;
import org.geotools.data.Transaction;
import org.geotools.data.efeature.EFeature;
import org.geotools.data.efeature.EFeatureContext;
import org.geotools.data.efeature.EFeatureInfo;
import org.geotools.data.efeature.EFeaturePackage;
import org.geotools.data.efeature.EFeatureReader;
import org.geotools.data.efeature.internal.EFeatureContextHelper;
import org.geotools.data.efeature.internal.EFeatureInternal;
import org.geotools.data.efeature.util.EFeatureAttributeList;
import org.geotools.data.efeature.util.EFeatureGeometryList;
import org.opengis.feature.Feature;
import com.vividsolutions.jts.geom.Geometry;
/**
* <!-- begin-user-doc -->
* This is the default and recommended implementation of {@link EFeature}.
* <p>
* Any alternative implementation of {@link EFeature} should internally
* delegate to {@link EFeatureInternal}. If not, unexpected behavior may occur.
* </p>
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link org.geotools.data.efeature.impl.EFeatureImpl#getID <em>ID</em>}</li>
* <li>{@link org.geotools.data.efeature.impl.EFeatureImpl#getData <em>Data</em>}</li>
* <li>{@link org.geotools.data.efeature.impl.EFeatureImpl#getSRID <em>SRID</em>}</li>
* <li>{@link org.geotools.data.efeature.impl.EFeatureImpl#getDefault <em>Default</em>}</li>
* <li>{@link org.geotools.data.efeature.impl.EFeatureImpl#getStructure <em>Structure</em>}</li>
* </ul>
* </p>
*
* @generated
*
* @source $URL$
*/
public abstract class EFeatureImpl extends EObjectImpl implements EFeature {
/**
* The default value of the '{@link #getID() <em>ID</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getID()
* @generated NOT
* @ordered
*/
protected static final String ID_EDEFAULT = "";
/**
* The default value of the '{@link #getData() <em>Data</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getData()
* @generated NOT
* @ordered
*/
protected static final Feature DATA_EDEFAULT = null;
/**
* The default value of the '{@link #getSRID() <em>SRID</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSRID()
* @generated NOT
* @ordered
*/
protected static final String SRID_EDEFAULT = "EPSG:4326";
/**
* The default value of the '{@link #isSimple() <em>Simple</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isSimple()
* @generated NOT
* @ordered
*/
protected static final boolean SIMPLE_EDEFAULT = true;
/**
* The default value of the '{@link #getDefault() <em>Default</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDefault()
* @generated NOT
* @ordered
*/
protected static final String DEFAULT_EDEFAULT = "geom";
/**
* The default value of the '{@link #getStructure() <em>Structure</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getStructure()
* @generated NOT
* @ordered
*/
protected static final EFeatureInfo STRUCTURE_EDEFAULT = null;
/**
* Exposes literal {@link #SRID_EDEFAULT} generated by EMF model generator.
*/
public static final String DEFAULT_SRID = SRID_EDEFAULT;
/**
* Exposes literal {@link #SIMPLE_EDEFAULT} generated by EMF model generator.
*/
public static final boolean DEFAULT_IS_SIMPLE = SIMPLE_EDEFAULT;
/**
* Exposes literal {@link #DATA_EDEFAULT} generated by EMF model generator.
*/
public static final Feature DEFAULT_DATA = DATA_EDEFAULT;
/**
* Exposes literal {@link #DEFAULT_EDEFAULT} generated by EMF model generator.
*/
public static final String DEFAULT_GEOMETRY_NAME = DEFAULT_EDEFAULT;
/**
* Exposes literal {@link #STRUCTURE_EDEFAULT} generated by EMF model generator.
*/
public static final EFeatureInfo DEFAULT_FEATURE_STRUCTURE = STRUCTURE_EDEFAULT;
/**
* Cached internal implementation of {@link EFeature}.
*/
protected EFeatureInternal eInternal;
// -----------------------------------------------------
// Constructors
// -----------------------------------------------------
/**
* <!-- begin-user-doc -->
* Context-unaware constructor.
* <p>
* Use this constructor when the {@link EFeatureContext} is unknown.
* <p>
* {@link EFeatureContext Context} and {@link EFeatureInfo structure} must
* be set before it can be read by {@link EFeatureReader}.
* </p>
* @see {@link EFeatureContextHelper} - read more about the context startup problem.
* @see {@link #setStructure(EFeatureInfo)} - set {@link EFeatureInfo#eContext() context}
* and {@link EFeatureInfo structure}.
* <!-- end-user-doc -->
* @generated NOT
*/
protected EFeatureImpl() {
//
// Construct EObject implementation
//
super();
//
// Construct the internal EFeature implementation
//
eInternal = new EFeatureInternal(this);
}
// -----------------------------------------------------
// EFeatureImpl methods
// -----------------------------------------------------
public EFeatureInternal eInternal() {
return eInternal;
}
// -----------------------------------------------------
// EFeature implementation
// -----------------------------------------------------
/**
* @generated NOT
*/
@Override
public String getID() {
return eInternal.getID();
}
/**
* @generated NOT
*/
@Override
public void setID(String newID) {
eInternal.setID(newID);
}
/**
* @generated NOT
*/
@Override
public String getSRID() {
return eInternal.getSRID();
}
/**
* @generated NOT
*/
@Override
public void setSRID(String newSRID) {
eInternal.setSRID(newSRID);
}
/**
* @generated NOT
*/
@Override
public Feature getData() {
return getData(Transaction.AUTO_COMMIT);
}
/**
* @generated NOT
*/
@Override
public Feature getData(Transaction transaction) {
return eInternal.getData(transaction);
}
/**
* @generated NOT
*/
@Override
public void setData(Feature newData) {
setData(newData, Transaction.AUTO_COMMIT);
}
/**
* @generated NOT
*/
@Override
public Feature setData(Feature newData, Transaction transaction) {
return eInternal.setData(newData, transaction);
}
/**
* @generated NOT
*/
@Override
public String getDefault() {
return getStructure().eGetDefaultGeometryName();
}
/**
* @generated NOT
*/
@Override
public void setDefault(String newDefault) {
eInternal.setDefault(newDefault);
}
/**
* @generated NOT
*/
@Override
public EFeatureInfo getStructure() {
return eInternal.getStructure();
}
/**
* @generated NOT
*/
@Override
public void setStructure(EFeatureInfo eStructure) {
eInternal.setStructure(eStructure);
}
/**
* @generated NOT
*/
@Override
public <V> EFeatureAttributeList<V> getAttributeList(Class<V> valueType) {
return eInternal.getAttributeList(valueType);
}
/**
* @generated NOT
*/
@Override
public <V extends Geometry> EFeatureGeometryList<V> getGeometryList(Class<V> valueType) {
return eInternal.getGeometryList(valueType);
}
// -----------------------------------------------------
// EObjectImpl implementation
// -----------------------------------------------------
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return EFeaturePackage.Literals.EFEATURE;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected int eStaticFeatureCount() {
return 0;
}
/**
* @generated NOT
*/
@Override
public String toString() {
if (eIsProxy())
return super.toString();
return eInternal.toString();
}
} // EFeatureImpl