/* (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.wfs.DescribeFeatureTypeType; import net.opengis.wfs.GetCapabilitiesType; import net.opengis.wfs.GetFeatureType; import net.opengis.wfs.GetFeatureWithLockType; import net.opengis.wfs.GetGmlObjectType; import net.opengis.wfs.LockFeatureResponseType; import net.opengis.wfs.LockFeatureType; import net.opengis.wfs.TransactionResponseType; import net.opengis.wfs.TransactionType; import org.geoserver.catalog.FeatureTypeInfo; import org.geoserver.wfs.request.FeatureCollectionResponse; import org.geotools.xml.transform.TransformerBase; /** * Web Feature Service implementation, versions 1.0, and 1.1. * <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, The Open Planning Project * */ public interface WebFeatureService { /** * 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 LockFeatureType operation. * * @param request The lock feature request. * * @return A lock feture 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 GetGmlObject operation. * * @param request The GetGmlObject request. * * @return The gml object request. * * @throws WFSException Any service exceptions. * */ Object getGmlObject(GetGmlObjectType 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; }