org.geotools.data.wfs.v1_1_0
Class IonicStrategy

Object
  extended by DefaultWFSStrategy
      extended by IonicStrategy
All Implemented Interfaces:
WFSStrategy

public class IonicStrategy
extends DefaultWFSStrategy


Nested Class Summary
static class IonicStrategy.IonicGML2BoxTypeBinding
          A gml:Box binding to override the default one to adapt to the Ionic server that recognizes <gml:Box><gml:coordinates> but not <gml:Box><gml:coord>...
 
Nested classes/interfaces inherited from interface WFSStrategy
WFSStrategy.RequestComponents
 
Field Summary
 
Fields inherited from class DefaultWFSStrategy
DEFAULT_OUTPUT_FORMAT
 
Constructor Summary
IonicStrategy()
           
 
Method Summary
 WFSStrategy.RequestComponents createGetFeatureRequest(WFSProtocol wfs, GetFeature query)
          Ionic uses urn:opengis:def:crs:ogc::83 instead of EPSG:4269.
 String getDefaultOutputFormat(WFSProtocol wfs, WFSOperationType op)
          Ionic does not declare the supported output formats in the caps, yet it fails if asked for text/xml; subtype=gml/3.1.1 but succeeds if asked for GML3
protected  Configuration getFilterConfiguration()
           
 Filter[] splitFilters(Capabilities caps, Filter queryFilter)
          Ionic's capabilities may state the spatial operator Intersect instead of Intersects.
 boolean supportsPost()
          We can't use POST at all against Ionic cause it is not a WFS 1.1 implementation and expect the filters to be encoded as per Filter 1.0, and I wasn't able of creating a WFS 1.1 with Filter 1.0 Configuration that works.
 
Methods inherited from class DefaultWFSStrategy
buildGetFeatureParametersForGet, encodeGetFeatureGetFilter, getWfsConfiguration, supportsGet
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IonicStrategy

public IonicStrategy()
Method Detail

supportsPost

public boolean supportsPost()
We can't use POST at all against Ionic cause it is not a WFS 1.1 implementation and expect the filters to be encoded as per Filter 1.0, and I wasn't able of creating a WFS 1.1 with Filter 1.0 Configuration that works.

Specified by:
supportsPost in interface WFSStrategy
Overrides:
supportsPost in class DefaultWFSStrategy
Returns:
false
See Also:
WFSStrategy.supportsPost()

getDefaultOutputFormat

public String getDefaultOutputFormat(WFSProtocol wfs,
                                     WFSOperationType op)
Ionic does not declare the supported output formats in the caps, yet it fails if asked for text/xml; subtype=gml/3.1.1 but succeeds if asked for GML3

Specified by:
getDefaultOutputFormat in interface WFSStrategy
Overrides:
getDefaultOutputFormat in class DefaultWFSStrategy
Returns:
"text/xml; subtype=gml/3.1.1"
See Also:
WFSProtocol#getDefaultOutputFormat()

getFilterConfiguration

protected Configuration getFilterConfiguration()
Overrides:
getFilterConfiguration in class DefaultWFSStrategy
Returns:
a Filter 1.0 configuration since Ionic expects that instead of 1.1

createGetFeatureRequest

public WFSStrategy.RequestComponents createGetFeatureRequest(WFSProtocol wfs,
                                                             GetFeature query)
                                                      throws IOException
Ionic uses urn:opengis:def:crs:ogc::83 instead of EPSG:4269. If that's the case, the query srsName is replaced by the kown "EPSG:4269" code

Specified by:
createGetFeatureRequest in interface WFSStrategy
Overrides:
createGetFeatureRequest in class DefaultWFSStrategy
Parameters:
wfs - the WFS protocol handler from which the strategy may need to grab some feature type metadata not available through the datastore interface, or even perform some test request.
query - the GetFeature query to create the server request and post-processing filter for
Returns:
a handle to the request and post-processing filter appropriate to attend the given query
Throws:
IOException
See Also:
WFSStrategy#createGetFeatureRequest(WFS_1_1_0_DataStore, WFSProtocol, Query, String)

splitFilters

public Filter[] splitFilters(Capabilities caps,
                             Filter queryFilter)
Ionic's capabilities may state the spatial operator Intersect instead of Intersects. If so, we fix that here so intersects is actually recognized as a supported filter.

Specified by:
splitFilters in interface WFSStrategy
Overrides:
splitFilters in class DefaultWFSStrategy
Parameters:
caps - the server filter capabilities description
Returns:
a two-element array where the first element is the supported filter and the second the one to post-process
See Also:
WFSStrategy#splitFilters(WFS_1_1_0_Protocol, Filter)


Copyright © 1996-2010 Geotools. All Rights Reserved.