001 //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/branches/2.3_testing/src/org/deegree/ogcwebservices/wms/configuration/LocalWFSDataSource.java $
002 /*----------------------------------------------------------------------------
003 This file is part of deegree, http://deegree.org/
004 Copyright (C) 2001-2009 by:
005 Department of Geography, University of Bonn
006 and
007 lat/lon GmbH
008
009 This library is free software; you can redistribute it and/or modify it under
010 the terms of the GNU Lesser General Public License as published by the Free
011 Software Foundation; either version 2.1 of the License, or (at your option)
012 any later version.
013 This library is distributed in the hope that it will be useful, but WITHOUT
014 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
015 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
016 details.
017 You should have received a copy of the GNU Lesser General Public License
018 along with this library; if not, write to the Free Software Foundation, Inc.,
019 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
020
021 Contact information:
022
023 lat/lon GmbH
024 Aennchenstr. 19, 53177 Bonn
025 Germany
026 http://lat-lon.de/
027
028 Department of Geography, University of Bonn
029 Prof. Dr. Klaus Greve
030 Postfach 1147, 53001 Bonn
031 Germany
032 http://www.geographie.uni-bonn.de/deegree/
033
034 e-mail: info@deegree.org
035 ----------------------------------------------------------------------------*/
036 package org.deegree.ogcwebservices.wms.configuration;
037
038 import java.net.URL;
039 import java.util.Map;
040
041 import org.deegree.datatypes.QualifiedName;
042 import org.deegree.model.spatialschema.Geometry;
043 import org.deegree.ogcwebservices.OGCWebService;
044 import org.deegree.ogcwebservices.OGCWebServiceException;
045 import org.deegree.ogcwebservices.wfs.WFService;
046 import org.deegree.ogcwebservices.wfs.WFServiceFactory;
047 import org.deegree.ogcwebservices.wfs.configuration.WFSConfiguration;
048 import org.deegree.ogcwebservices.wfs.operation.Query;
049 import org.deegree.ogcwebservices.wms.capabilities.ScaleHint;
050
051 /**
052 * Data source description for a LOCALWFS datasource
053 *
054 * @author <a href="mailto:poth@lat-lon.de">Andreas Poth </a>
055 * @version $Revision: 18195 $, $Date: 2009-06-18 17:55:39 +0200 (Do, 18. Jun 2009) $
056 */
057 public class LocalWFSDataSource extends AbstractDataSource {
058
059 private Query query = null;
060
061 private QualifiedName geometryProperty = null;
062
063 /**
064 * Creates a new DataSource object.
065 *
066 * @param querable
067 * @param failOnException
068 *
069 * @param name
070 * name of the featuretype to access
071 * @param type
072 * type of the data source (REMOTEWCS, LOCALWCS)
073 * @param geometryProperty
074 * @param ows
075 * <tt>OGCWebService</tt> instance for accessing the data source
076 * @param capabilitiesURL
077 * @param scaleHint
078 * filter condition
079 * @param validArea
080 * @param query
081 * @param featureInfoTransform
082 * @param reqTimeLimit
083 */
084 public LocalWFSDataSource( boolean querable, boolean failOnException, QualifiedName name, int type,
085 QualifiedName geometryProperty, OGCWebService ows, URL capabilitiesURL,
086 ScaleHint scaleHint, Geometry validArea, Query query, URL featureInfoTransform,
087 int reqTimeLimit ) {
088 super( querable, failOnException, name, type, ows, capabilitiesURL, scaleHint, validArea, featureInfoTransform,
089 reqTimeLimit, null );
090 this.query = query;
091 this.geometryProperty = geometryProperty;
092 }
093
094 /**
095 * @param querable
096 * @param failOnException
097 * @param name
098 * @param type
099 * @param geometryProperty
100 * @param ows
101 * @param capabilitiesURL
102 * @param scaleHint
103 * @param validArea
104 * @param query
105 * @param featureInfoTransform
106 * @param reqTimeLimit
107 * @param dimProps
108 */
109 public LocalWFSDataSource( boolean querable, boolean failOnException, QualifiedName name, int type,
110 QualifiedName geometryProperty, OGCWebService ows, URL capabilitiesURL,
111 ScaleHint scaleHint, Geometry validArea, Query query, URL featureInfoTransform,
112 int reqTimeLimit, Map<String, String> dimProps ) {
113 super( querable, failOnException, name, type, ows, capabilitiesURL, scaleHint, validArea, featureInfoTransform,
114 reqTimeLimit, dimProps );
115 this.query = query;
116 this.geometryProperty = geometryProperty;
117 }
118
119 /**
120 * @return the WFS Query that describes the access/filtering to the data source.
121 */
122 public Query getQuery() {
123 return query;
124 }
125
126 /**
127 * @return the name of the geometry property in case the datasource is of type LOCALWFS / REMOTEWFS.
128 * <p>
129 *
130 */
131 public QualifiedName getGeometryProperty() {
132 return geometryProperty;
133 }
134
135 /**
136 * Returns an instance of the <tt>OGCWebService</tt> that represents the datasource.
137 *
138 * TODO if more than one layer uses data that are offered by the same OWS the deegree WMS shall just use one
139 * instance for accessing the OWS.
140 */
141 @Override
142 public OGCWebService getOGCWebService()
143 throws OGCWebServiceException {
144 // not sure why new services are recreated always
145 return WFServiceFactory.createInstance( (WFSConfiguration) ( (WFService) ows ).getCapabilities() );
146 // return ows;
147 }
148
149 }