/*
* 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;
import java.io.IOException;
import java.util.Map;
import net.opengis.wfs.GetFeatureType;
import org.geotools.data.Query;
import org.geotools.data.ws.protocol.ws.WSProtocol;
import org.geotools.filter.Capabilities;
import org.geotools.wfs.WFSConfiguration;
import org.geotools.xml.Configuration;
import org.opengis.filter.Filter;
import freemarker.template.Template;
/**
* An interface to allow plugging different strategy objects into a {@link XmlDataStore} to take
* care of specific WS implementations limitations or deviations from the spec.
*
* @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/v1_1_0/WSStrategy.java $
* @see WSDataStoreFactory
* @see DefaultWSStrategy
* @see CubeWerxStrategy
*/
public interface WSStrategy {
/**
* Returns an xml configuration suitable to parse/encode wfs documents appropriate for the
* server.
* <p>
* Note: most of the time it will just be {@link WFSConfiguration}, but it may be possible, for
* example, an strategy needs to override some bindings.
* </p>
*
* @return a WFS xml {@link Configuration}
*/
public Configuration getWsConfiguration();
public Filter[] splitFilters(Capabilities filterCaps, Filter filter);
public Template getTemplate();
public Map getRequestData(Query query) throws IOException;
}