/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.wfs; import net.opengis.wfs20.CreateStoredQueryResponseType; import net.opengis.wfs20.CreateStoredQueryType; import net.opengis.wfs20.DescribeFeatureTypeType; import net.opengis.wfs20.DescribeStoredQueriesResponseType; import net.opengis.wfs20.DescribeStoredQueriesType; import net.opengis.wfs20.DropStoredQueryType; import net.opengis.wfs20.ExecutionStatusType; import net.opengis.wfs20.GetCapabilitiesType; import net.opengis.wfs20.GetFeatureType; import net.opengis.wfs20.GetFeatureWithLockType; import net.opengis.wfs20.GetPropertyValueType; import net.opengis.wfs20.ListStoredQueriesResponseType; import net.opengis.wfs20.ListStoredQueriesType; import net.opengis.wfs20.LockFeatureResponseType; import net.opengis.wfs20.LockFeatureType; import net.opengis.wfs20.TransactionResponseType; import net.opengis.wfs20.TransactionType; import net.opengis.wfs20.ValueCollectionType; import org.geoserver.catalog.FeatureTypeInfo; import org.geoserver.wfs.request.FeatureCollectionResponse; import org.geotools.xml.transform.TransformerBase; /** * Web Feature Service implementation version 2.0. * <p> * Each of the methods on this class corresponds to an operation as defined * by the Web Feature Specification. See {@link "http://www.opengeospatial.org/standards/wfs"} * for more details. * </p> * @author Justin Deoliveira, OpenGeo */ public interface WebFeatureService20 { /** * The configuration of the service. */ WFSInfo getServiceInfo(); /** * WFS GetCapabilities operation. * * @param request The get capabilities request. * * @return A transformer instance capable of serializing a wfs capabilities * document. * * @throws WFSException Any service exceptions. */ TransformerBase getCapabilities(GetCapabilitiesType request) throws WFSException; /** * WFS DescribeFeatureType operation. * * @param request The describe feature type request. * * @return A set of feature type metadata objects. * * @throws WFSException Any service exceptions. */ FeatureTypeInfo[] describeFeatureType(DescribeFeatureTypeType request) throws WFSException; /** * WFS GetFeature operation. * * @param request The get feature request. * * @return A feature collection type instance. * * @throws WFSException Any service exceptions. */ FeatureCollectionResponse getFeature(GetFeatureType request) throws WFSException; /** * WFS GetFeatureWithLock operation. * * @param request The get feature with lock request. * * @return A feature collection type instance. * * @throws WFSException Any service exceptions. */ FeatureCollectionResponse getFeatureWithLock(GetFeatureWithLockType request) throws WFSException; /** * WFS GetPropertyValue operation. * * @param request The get property value request. * * @return A value collection type instance. * * @throws WFSException Any service exceptions. */ ValueCollectionType getPropertyValue(GetPropertyValueType requets) throws WFSException; /** * WFS LockFeatureType operation. * * @param request The lock feature request. * * @return A lock feature response type. * * @throws WFSException An service exceptions. */ LockFeatureResponseType lockFeature(LockFeatureType request) throws WFSException; /** * WFS transaction operation. * * @param request The transaction request. * * @return A transaction response instance. * * @throws WFSException Any service exceptions. */ TransactionResponseType transaction(TransactionType request) throws WFSException; /** * WFS list stored query operation. */ ListStoredQueriesResponseType listStoredQueries(ListStoredQueriesType request) throws WFSException; /** * WFS describe stored query operation. */ DescribeStoredQueriesResponseType describeStoredQueries(DescribeStoredQueriesType request) throws WFSException; /** * WFS create stored query operation. */ CreateStoredQueryResponseType createStoredQuery(CreateStoredQueryType request) throws WFSException; /** * WFS drop stored query operation. */ ExecutionStatusType dropStoredQuery(DropStoredQueryType request) throws WFSException; /** * Release lock operation. * <p> * This is not an official operation of the spec. * </p> * @param lockId A prefiously held lock id. */ void releaseLock(String lockId) throws WFSException; }