/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2002-2008, Open Source Geospatial Foundation (OSGeo) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotools.data.ws.protocol.ws; import java.io.IOException; import java.net.URL; import java.util.Set; import javax.xml.namespace.QName; import org.geotools.data.Query; import org.opengis.filter.Filter; import org.opengis.filter.capability.FilterCapabilities; /** * * @author rpetty * @version $Id$ * @since 2.6 * * * @source $URL$ * http://gtsvn.refractions.net/trunk/modules/unsupported/app-schema/webservice/src/main/java/org/geotools/data * /wfs/protocol/wfs/WFSProtocol.java $ */ public interface WSProtocol { /** * Returns the set of type names as extracted from the capabilities document, including the * namespace and prefix. * * @return the set of feature type names as extracted from the capabilities document */ public Set<QName> getFeatureTypeNames(); public FilterCapabilities getFilterCapabilities(); /** * Returns the URL for the given operation name and HTTP protocol as stated in the WFS * capabilities. * * @return The URL access point for the given operation and method or {@code null} if the * capabilities does not declare an access point for the operation/method combination * @see #supportsOperation(WSOperationType) */ public URL getOperationURL(); /** * Issues a GetFeature request for the given request, using POST HTTP method * <p> */ public WSResponse issueGetFeature(Query request) throws IOException, UnsupportedOperationException; public Filter[] splitFilters(Filter filter); /** * Close input stream for capabilities reader. * @throws IOException */ public void clean() throws IOException; }