|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.geotools.data.AbstractDataStore
org.geotools.data.wfs.v1_0_0.WFS_1_0_0_DataStore
public class WFS_1_0_0_DataStore
DOCUMENT ME!
Field Summary | |
---|---|
protected WFSCapabilities |
capabilities
|
static java.util.logging.Logger |
LOGGER
|
protected HttpMethod |
preferredProtocol
|
protected org.geotools.data.wfs.v1_0_0.WFSStrategy |
strategy
|
Fields inherited from class org.geotools.data.AbstractDataStore |
---|
isWriteable, listenerManager |
Constructor Summary | |
---|---|
WFS_1_0_0_DataStore(HttpMethod protocol,
WFS100ProtocolHandler protocolHandler,
int timeout,
int buffer,
boolean lenient)
Construct WFSDataStore . |
Method Summary | |
---|---|
void |
addFidMapping(java.lang.String original,
java.lang.String finalFid)
Adds a new fid mapping to the fid map. |
protected ReferencedEnvelope |
getBounds(Query query)
Computes the bounds of the features for the specified feature type that satisfy the query provided that there is a fast way to get that result. |
WFSCapabilities |
getCapabilities()
|
java.net.URL |
getCapabilitiesURL()
|
java.net.URL |
getDescribeFeatureTypeURL(java.lang.String typeName)
|
FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> |
getFeatureReader(Query query,
Transaction transaction)
Access a FeatureReader providing access to Feature information. |
protected FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> |
getFeatureReader(java.lang.String typeName)
Subclass must implement. |
protected FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> |
getFeatureReader(java.lang.String typeName,
Query query)
GR: this method is called from inside getFeatureReader(Query ,Transaction ) to allow subclasses return an optimized FeatureReader query |
protected FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> |
getFeatureReaderGet(Query request,
Transaction transaction)
|
protected FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> |
getFeatureReaderPost(Query query,
Transaction transaction)
|
FeatureSource<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> |
getFeatureSource(org.opengis.feature.type.Name typeName)
Delegates to AbstractDataStore.getFeatureSource(String) with
name.getLocalPart() |
WFSFeatureSource |
getFeatureSource(java.lang.String typeName)
Default implementation based on getFeatureReader and getFeatureWriter. |
java.lang.String |
getFeatureTypeAbstract(java.lang.String typeName)
|
ReferencedEnvelope |
getFeatureTypeBounds(java.lang.String typeName)
|
org.opengis.referencing.crs.CoordinateReferenceSystem |
getFeatureTypeCRS(java.lang.String typeName)
|
java.util.Set<java.lang.String> |
getFeatureTypeKeywords(java.lang.String typeName)
|
javax.xml.namespace.QName |
getFeatureTypeName(java.lang.String typeName)
|
java.lang.String |
getFeatureTypeTitle(java.lang.String typeName)
|
ReferencedEnvelope |
getFeatureTypeWGS84Bounds(java.lang.String typeName)
|
WFSServiceInfo |
getInfo()
Information about this service. |
java.lang.Integer |
getMaxFeatures()
|
java.util.List<org.opengis.feature.type.Name> |
getNames()
Returns the same list of names than AbstractDataStore.getTypeNames() meaning the
returned Names have no namespace set. |
org.opengis.feature.simple.SimpleFeatureType |
getSchema(org.opengis.feature.type.Name name)
Delegates to AbstractDataStore.getSchema(String) with name.getLocalPart() |
org.opengis.feature.simple.SimpleFeatureType |
getSchema(java.lang.String typeName)
DOCUMENT ME! |
protected org.opengis.feature.simple.SimpleFeatureType |
getSchemaGet(java.lang.String typeName)
|
protected org.opengis.feature.simple.SimpleFeatureType |
getSchemaPost(java.lang.String typeName)
|
java.lang.String |
getServiceAbstract()
|
java.util.Set<java.lang.String> |
getServiceKeywords()
|
java.net.URI |
getServiceProviderUri()
|
java.lang.String |
getServiceTitle()
|
java.lang.String |
getServiceVersion()
|
java.lang.String[] |
getTypeNames()
helper method for retrieving all the names. |
protected org.opengis.filter.Filter |
getUnsupportedFilter(java.lang.String typeName,
org.opengis.filter.Filter filter)
GR: if a subclass supports filtering, it should override this method to return the unsupported part of the passed filter, so a FilteringFeatureReader will be constructed upon it. |
boolean |
isPreferPostOverGet()
|
org.opengis.filter.Filter |
processFilter(org.opengis.filter.Filter filter)
Runs FidFilterVisitor on the filter and returns the result as long as transaction is
not AUTO_COMMIT or null. |
void |
setMaxFeatures(java.lang.Integer maxFeatures)
|
void |
setPreferPostOverGet(java.lang.Boolean booleanValue)
|
protected org.opengis.filter.Filter[] |
splitFilters(Query q,
Transaction t)
|
void |
updateSchema(org.opengis.feature.type.Name typeName,
org.opengis.feature.simple.SimpleFeatureType featureType)
Delegates to AbstractDataStore.updateSchema(String, SimpleFeatureType) with
name.getLocalPart() |
Methods inherited from class org.geotools.data.AbstractDataStore |
---|
createFeatureWriter, createLockingManager, createMetadata, createSchema, dispose, getCount, getFeatureWriter, getFeatureWriter, getFeatureWriter, getFeatureWriterAppend, getLockingManager, getSupportedHints, getView, state, updateSchema |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.geotools.data.DataStore |
---|
getFeatureWriter, getFeatureWriter, getFeatureWriterAppend, getLockingManager, getView, updateSchema |
Methods inherited from interface org.geotools.data.DataAccess |
---|
createSchema, dispose |
Field Detail |
---|
public static final java.util.logging.Logger LOGGER
protected WFSCapabilities capabilities
protected HttpMethod preferredProtocol
protected org.geotools.data.wfs.v1_0_0.WFSStrategy strategy
Constructor Detail |
---|
public WFS_1_0_0_DataStore(HttpMethod protocol, WFS100ProtocolHandler protocolHandler, int timeout, int buffer, boolean lenient) throws org.xml.sax.SAXException, java.io.IOException
WFSDataStore
.
host
- - may not yet be a capabilities urlprotocol
- - true,false,null (post,get,auto)username
- - iff passwordpassword
- - iff usernametimeout
- - default 3000 (ms)buffer
- - default 10 (features)tryGZIP
- - indicates to use GZIP if server supports it.lenient
- - if true the parsing will be very forgiving to bad data. Errors will be logged
rather than exceptions.
org.xml.sax.SAXException
java.io.IOException
Method Detail |
---|
public WFSServiceInfo getInfo()
DataAccess
This method offers access to a summary of header or metadata information describing the service.
Subclasses may return a specific ServiceInfo instance that has additional information (such as FilterCapabilities).
getInfo
in interface DataAccess<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
getInfo
in interface WFSDataStore
getInfo
in class AbstractDataStore
DataAccess.getInfo()
public java.lang.String[] getTypeNames()
AbstractDataStore
getTypeNames
in interface DataStore
getTypeNames
in class AbstractDataStore
AbstractDataStore.getTypeNames()
public org.opengis.feature.simple.SimpleFeatureType getSchema(java.lang.String typeName) throws java.io.IOException
getSchema
in interface DataStore
getSchema
in class AbstractDataStore
typeName
- DOCUMENT ME!
java.io.IOException
AbstractDataStore.getSchema(java.lang.String)
protected org.opengis.feature.simple.SimpleFeatureType getSchemaGet(java.lang.String typeName) throws org.xml.sax.SAXException, java.io.IOException
org.xml.sax.SAXException
java.io.IOException
protected org.opengis.feature.simple.SimpleFeatureType getSchemaPost(java.lang.String typeName) throws java.io.IOException, org.xml.sax.SAXException
java.io.IOException
org.xml.sax.SAXException
protected FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> getFeatureReaderGet(Query request, Transaction transaction) throws java.io.UnsupportedEncodingException, java.io.IOException, org.xml.sax.SAXException
java.io.UnsupportedEncodingException
java.io.IOException
org.xml.sax.SAXException
protected FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> getFeatureReaderPost(Query query, Transaction transaction) throws org.xml.sax.SAXException, java.io.IOException
org.xml.sax.SAXException
java.io.IOException
protected FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> getFeatureReader(java.lang.String typeName) throws java.io.IOException
AbstractDataStore
getFeatureReader
in class AbstractDataStore
java.io.IOException
protected FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> getFeatureReader(java.lang.String typeName, Query query) throws java.io.IOException
AbstractDataStore
query
A subclass that supports the creation of such an optimized FeatureReader
shold override this method. Otherwise, it just returns
getFeatureReader(typeName)
getFeatureReader
in class AbstractDataStore
java.io.IOException
public FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> getFeatureReader(Query query, Transaction transaction) throws java.io.IOException
DataStore
Filter is used as a low-level indication of constraints. (Implementations may resort to using a FilteredFeatureReader, or provide their own optimizations)
FeatureType provides a template for the returned FeatureReader
Transaction to externalize DataStore state on a per Transaction basis. The most common example is a JDBC datastore saving a Connection for use across several FeatureReader requests. Similarly a Shapefile reader may wish to redirect FeatureReader requests to a alternate filename over the course of a Transaction.
Notes For Implementing DataStore
Subclasses may need to retrieve additional attributes, beyond those
requested by featureType.getAttributeTypes(), in order to correctly
apply the filter
.
These Additional attribtues should be not be returned by
FeatureReader. Subclasses may use ReTypeFeatureReader to aid in
acomplishing this.
Helper classes for implementing a FeatureReader (in order):
Sample use (not optimized):
if (filter == Filter.EXCLUDE) {
return new EmptyFeatureReader(featureType);
}
String typeName = featureType.getTypeName();
FeatureType schema = getSchema( typeName );
FeatureReader reader = new DefaultFeatureReader( getAttributeReaders(), schema );
if (filter != Filter.INCLUDE) {
reader = new FilteringFeatureReader(reader, filter);
}
if (transaction != Transaction.AUTO_COMMIT) {
Map diff = state(transaction).diff(typeName);
reader = new DiffFeatureReader(reader, diff);
}
if (!featureType.equals(reader.getFeatureType())) {
reader = new ReTypeFeatureReader(reader, featureType);
}
return reader
Locking support does not need to be provided for FeatureReaders.
getFeatureReader
in interface DataStore
getFeatureReader
in class AbstractDataStore
query
- Requested form of the returned Features and the filter used
to constraints the resultstransaction
- Transaction this query operates against
java.io.IOException
DataStore.getFeatureReader(org.geotools.data.Query,
org.geotools.data.Transaction)
protected ReferencedEnvelope getBounds(Query query) throws java.io.IOException
AbstractDataStore
Will return null if there is not fast way to compute the bounds. Since it's based on some kind of header/cached information, it's not guaranteed to be real bound of the features
getBounds
in class AbstractDataStore
SchemaNotFoundException
java.io.IOException
protected org.opengis.filter.Filter[] splitFilters(Query q, Transaction t) throws java.io.IOException
java.io.IOException
protected org.opengis.filter.Filter getUnsupportedFilter(java.lang.String typeName, org.opengis.filter.Filter filter)
AbstractDataStore
If the complete filter is supported, the subclass must return Filter.INCLUDE
getUnsupportedFilter
in class AbstractDataStore
org.geotools.data.AbstractDataStore#getUnsupportedFilter(java.lang.String,
org.geotools.filter.Filter)
public WFSFeatureSource getFeatureSource(java.lang.String typeName) throws java.io.IOException
AbstractDataStore
We should be able to optimize this to only get the RowSet once
getFeatureSource
in interface DataStore
getFeatureSource
in class AbstractDataStore
java.io.IOException
DataStore.getFeatureSource(java.lang.String)
public org.opengis.filter.Filter processFilter(org.opengis.filter.Filter filter)
FidFilterVisitor
on the filter and returns the result as long as transaction is
not AUTO_COMMIT or null.
filter
- filter to process.
FidFilterVisitor
on the filter and returns the result as long as
transaction is not AUTO_COMMIT or null.public void addFidMapping(java.lang.String original, java.lang.String finalFid)
original
- the before fidfinalFid
- the final fid;public WFSCapabilities getCapabilities()
public FeatureSource<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> getFeatureSource(org.opengis.feature.type.Name typeName) throws java.io.IOException
AbstractDataStore
AbstractDataStore.getFeatureSource(String)
with
name.getLocalPart()
getFeatureSource
in interface DataAccess<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
getFeatureSource
in class AbstractDataStore
java.io.IOException
DataAccess.getFeatureSource(Name)
public java.util.List<org.opengis.feature.type.Name> getNames() throws java.io.IOException
AbstractDataStore
AbstractDataStore.getTypeNames()
meaning the
returned Names have no namespace set.
getNames
in interface DataAccess<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
getNames
in class AbstractDataStore
java.io.IOException
DataAccess.getNames()
public org.opengis.feature.simple.SimpleFeatureType getSchema(org.opengis.feature.type.Name name) throws java.io.IOException
AbstractDataStore
AbstractDataStore.getSchema(String)
with name.getLocalPart()
getSchema
in interface DataAccess<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
getSchema
in class AbstractDataStore
name
- Type name a the resource from getNames()
java.io.IOException
DataAccess.getSchema(Name)
public void updateSchema(org.opengis.feature.type.Name typeName, org.opengis.feature.simple.SimpleFeatureType featureType) throws java.io.IOException
AbstractDataStore
AbstractDataStore.updateSchema(String, SimpleFeatureType)
with
name.getLocalPart()
updateSchema
in interface DataAccess<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
updateSchema
in class AbstractDataStore
java.io.IOException
- if the operation failedDataAccess.getFeatureSource(Name)
public java.net.URL getDescribeFeatureTypeURL(java.lang.String typeName)
getDescribeFeatureTypeURL
in interface WFSDataStore
WFSDataStore.getDescribeFeatureTypeURL(String)
public java.lang.String getFeatureTypeAbstract(java.lang.String typeName)
getFeatureTypeAbstract
in interface WFSDataStore
WFSDataStore.getFeatureTypeBounds(String)
public ReferencedEnvelope getFeatureTypeBounds(java.lang.String typeName)
getFeatureTypeBounds
in interface WFSDataStore
WFSDataStore.getFeatureTypeBounds(String)
public org.opengis.referencing.crs.CoordinateReferenceSystem getFeatureTypeCRS(java.lang.String typeName)
getFeatureTypeCRS
in interface WFSDataStore
WFSDataStore.getFeatureTypeCRS(String)
public java.util.Set<java.lang.String> getFeatureTypeKeywords(java.lang.String typeName)
getFeatureTypeKeywords
in interface WFSDataStore
WFSDataStore#
public java.lang.String getFeatureTypeTitle(java.lang.String typeName)
getFeatureTypeTitle
in interface WFSDataStore
WFSDataStore.getFeatureTypeTitle(String)
public ReferencedEnvelope getFeatureTypeWGS84Bounds(java.lang.String typeName)
getFeatureTypeWGS84Bounds
in interface WFSDataStore
WFSDataStore.getFeatureTypeWGS84Bounds(String)
public void setMaxFeatures(java.lang.Integer maxFeatures)
setMaxFeatures
in interface WFSDataStore
public java.net.URL getCapabilitiesURL()
getCapabilitiesURL
in interface WFSDataStore
public javax.xml.namespace.QName getFeatureTypeName(java.lang.String typeName)
getFeatureTypeName
in interface WFSDataStore
public java.lang.Integer getMaxFeatures()
getMaxFeatures
in interface WFSDataStore
public java.lang.String getServiceAbstract()
getServiceAbstract
in interface WFSDataStore
public java.util.Set<java.lang.String> getServiceKeywords()
getServiceKeywords
in interface WFSDataStore
public java.net.URI getServiceProviderUri()
getServiceProviderUri
in interface WFSDataStore
public java.lang.String getServiceTitle()
getServiceTitle
in interface WFSDataStore
public java.lang.String getServiceVersion()
getServiceVersion
in interface WFSDataStore
public boolean isPreferPostOverGet()
isPreferPostOverGet
in interface WFSDataStore
public void setPreferPostOverGet(java.lang.Boolean booleanValue)
setPreferPostOverGet
in interface WFSDataStore
booleanValue
- Boolean.TRUE to prefer POST over GET, Boolean.FALSE for the opposite, null
for auto (let the implementation decide)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |