Package org.opengis.cite.iso19142.util
Class WFSClient
java.lang.Object
org.opengis.cite.iso19142.util.WFSClient
A WFS 2.0 client component.
-
Field Summary
Modifier and TypeFieldDescriptionprotected jakarta.ws.rs.client.Client
The list of feature types recognized by the SUT.protected Set<ProtocolBinding>
The set of message bindings broadly implemented by the SUT.protected Document
A Document that describes the service under test. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionjakarta.ws.rs.core.Response
deleteFeature
(Document reqEntity, String id, QName typeName) Submits a request to delete a feature.deleteFeatures
(Map<String, QName> features, ProtocolBinding binding) Submits a request to delete a collection of features specified by identifier and type name.int
deleteStoredQuery
(String queryId) Submits a request to delete a stored query.(package private) Document
executeTransaction
(Document request, ProtocolBinding binding) Executes a WFS transaction.Returns a protocol binding suitable for transaction requests.Retrieves a complete representation of the capabilities document from the WFS implementation described by the service metadata.jakarta.ws.rs.client.Client
Returns the underlying JAX-RS client.jakarta.ws.rs.core.Response
getFeature
(Source reqEntity, ProtocolBinding binding) Submits a GetFeature request.getFeatureByType
(QName typeName, int count, ProtocolBinding binding) Retrieves feature representations by type name.jakarta.ws.rs.core.Response
GetFeatureVersion
(ResourceId rid, QName typeName) Submits a request to retrieve one or more feature versions as specified by the given resource identifier.Returns the WFS service description set for this client.insert
(List<Element> features, ProtocolBinding binding) Submits a request to insert a collection of GML feature instances.invokeStoredQuery
(String queryId, Map<String, Object> params) Invokes a stored query using any supported protocol binding (request encoding).Requests a list of stored queries.(package private) Document
retrieveXMLResponseEntity
(Document request, ProtocolBinding binding) Submits the given request entity and returns the response entity as a DOM Document.void
setServiceDescription
(InputStream srvMetadata) Sets the service description obtained using the given InputStream.jakarta.ws.rs.core.Response
submitRequest
(Source entity, ProtocolBinding binding, URI endpoint) Submits an HTTP request message.jakarta.ws.rs.core.Response
submitRequest
(Document reqEntity, ProtocolBinding binding) Submits a request using the specified message binding and the content of the given XML request entity.Submits a request to update a feature using the POST protocol binding.updateFeature
(Document req, String id, QName featureType, Map<String, Object> properties, ProtocolBinding binding) Submits a request to update a feature.
-
Field Details
-
client
protected jakarta.ws.rs.client.Client client -
wfsMetadata
A Document that describes the service under test. -
globalBindings
The set of message bindings broadly implemented by the SUT. -
featureTypes
The list of feature types recognized by the SUT.
-
-
Constructor Details
-
WFSClient
public WFSClient()Default client constructor. The client is configured to consume SOAP message entities. The request and response may be logged to a default JDK logger (in the namespace "com.sun.jersey.api.client"). TODO -
WFSClient
Constructs a client that is aware of the capabilities of a WFS implementation.- Parameters:
wfsMetadata
- A service description (e.g. WFS capabilities document).
-
-
Method Details
-
getServiceDescription
Returns the WFS service description set for this client.- Returns:
- A WFS capabilities document (wfs:WFS_Capabilities).
-
getClient
public jakarta.ws.rs.client.Client getClient()Returns the underlying JAX-RS client.- Returns:
- A JAX-RS client component.
-
setServiceDescription
Sets the service description obtained using the given InputStream. The standard description is an XML representation of a WFS capabilities document.- Parameters:
srvMetadata
- An InputStream supplying the service metadata.- Throws:
SAXException
- If any I/O errors occur.IOException
- If any parsing errors occur.
-
invokeStoredQuery
Invokes a stored query using any supported protocol binding (request encoding).- Parameters:
queryId
- A stored query identifier.params
- A collection of query parameters distinguished by name (may be empty, e.g. Collections.<String, Object>.emptyMap() ).- Returns:
- A Document representing the XML response entity, or
null
if the response doesn't contain one.
-
getFeatureByType
Retrieves feature representations by type name.- Parameters:
typeName
- A QName denoting the feature type.count
- The maximum number of features to fetch (> 0). If count < 1, the default value (10) applies.binding
- The ProtocolBinding to use for this request; ifnull
a global binding will be used.- Returns:
- A Document representing the XML response entity, or
null
if the response doesn't contain one.
-
getFeature
Submits a GetFeature request.- Parameters:
reqEntity
- A Source representing the content of the request entity; if necessary it will be transformed into the query component of a GET request.binding
- The HTTP method binding to use.- Returns:
- A client response context.
-
deleteFeatures
Submits a request to delete a collection of features specified by identifier and type name.- Parameters:
features
- A Map containing entries that specify a feature by identifier (gml:id attribute value) and type name (QName).binding
- The ProtocolBinding to use.- Returns:
- A Document representing the XML response entity, or
null
if the response doesn't contain one.
-
deleteFeature
Submits a request to delete a feature. A wfs:Delete element is appended to the given transaction request entity.- Parameters:
reqEntity
- A WFS transaction request entity (wfs:Transaction).id
- A feature identifier.typeName
- The type name of the feature.- Returns:
- A representation of the HTTP response.
-
GetFeatureVersion
Submits a request to retrieve one or more feature versions as specified by the given resource identifier.- Parameters:
rid
- A resource identifier that selects members of the version chain to which this identified version belongs.typeName
- The name of a feature type.- Returns:
- The (JAX-RS) client response message.
-
insert
Submits a request to insert a collection of GML feature instances.- Parameters:
features
- A List<Element> containing one or more feature representations.binding
- The ProtocolBinding to use.- Returns:
- A Document representing the XML response entity, or
null
if the response doesn't contain one.
-
updateFeature
Submits a request to update a feature using the POST protocol binding.- Parameters:
id
- A feature identifier.featureType
- The qualified name of the feature type.properties
- A Map containing the feature properties to be updated.- Returns:
- A Document representing the XML response entity.
- See Also:
-
updateFeature
public Document updateFeature(Document req, String id, QName featureType, Map<String, Object> properties, ProtocolBinding binding) Submits a request to update a feature.- Parameters:
req
- An empty wfs:Transaction request entity.id
- The GML identifier of the feature to be updated (gml:id attribute).featureType
- The type of the feature instance.properties
- A Map containing the feature properties to be updated (replaced). Each entry consists of a value reference (an XPath expression) and a value object. The value may be a Node representing a complex property value; otherwise it is treated as a simple value by calling the object's toString() method.binding
- The ProtocolBinding to use.- Returns:
- A Document representing the XML response entity, or
null
if the response doesn't contain one.
-
submitRequest
public jakarta.ws.rs.core.Response submitRequest(Source entity, ProtocolBinding binding, URI endpoint) Submits an HTTP request message. For GET requests the XML request entity is serialized to its corresponding KVP string format and added to the query component of the Request-URI. For SOAP requests that adhere to the "Request-Response" message exchange pattern, the outbound message entity is a SOAP envelope containing the standard XML request in the body.- Parameters:
entity
- An XML representation of the request entity.binding
- TheProtocolBinding
to use.endpoint
- The service endpoint.- Returns:
- A Response object representing the response message.
-
submitRequest
Submits a request using the specified message binding and the content of the given XML request entity.- Parameters:
reqEntity
- A DOM Document representing the content of the request message.binding
- The ProtocolBinding to use; may beProtocolBinding.ANY
if any supported binding can be used.- Returns:
- A Response object representing the response message.
-
getCapabilities
Retrieves a complete representation of the capabilities document from the WFS implementation described by the service metadata. TheacceptVersions
parameter is omitted, so the response shall reflect the latest version supported by the SUT.- Returns:
- A Document containing the response to a GetCapabilities request, or
null
if one could not be obtained.
-
getAnyTransactionBinding
Returns a protocol binding suitable for transaction requests. Any binding advertised in the service capabilities document is returned.- Returns:
- A supported ProtocolBinding instance (POST or SOAP).
-
executeTransaction
Executes a WFS transaction.- Parameters:
request
- A Document node representing a wfs:Transaction request entity.binding
- The ProtocolBinding to use- Returns:
- A Document node representing the response entity.
-
retrieveXMLResponseEntity
Submits the given request entity and returns the response entity as a DOM Document.- Parameters:
request
- An XML representation of the request entity; the actual request depends on the message binding in use.binding
- The ProtocolBinding to use (GET, POST, or SOAP).- Returns:
- A DOM Document containing the response entity, or
null
if the request failed or the message body could not be parsed.
-
deleteStoredQuery
Submits a request to delete a stored query.- Parameters:
queryId
- A URI value that identifies the query to be dropped.- Returns:
- The HTTP status code.
-
listStoredQueries
Requests a list of stored queries.- Returns:
- A list of query identifiers.
-