001 //$HeadURL: svn+ssh://jwilden@svn.wald.intevation.org/deegree/base/branches/2.5_testing/src/org/deegree/ogcwebservices/wms/configuration/RemoteWMSDataSource.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.awt.Color; 039 import java.net.URL; 040 import java.util.List; 041 import java.util.Map; 042 043 import org.deegree.datatypes.QualifiedName; 044 import org.deegree.model.spatialschema.Geometry; 045 import org.deegree.ogcwebservices.OGCWebService; 046 import org.deegree.ogcwebservices.wms.RemoteWMService; 047 import org.deegree.ogcwebservices.wms.capabilities.ScaleHint; 048 import org.deegree.ogcwebservices.wms.capabilities.WMSCapabilities; 049 import org.deegree.ogcwebservices.wms.operation.GetMap; 050 051 /** 052 * Data source description for a REMOTEWMS 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 RemoteWMSDataSource extends AbstractDataSource { 058 059 private GetMap getMap = null; 060 061 private Color[] transparentColors = null; 062 063 private List<String> passedParameters; 064 065 private Map<String, String> addedParameters; 066 067 /** 068 * Creates a new DataSource object. 069 * 070 * @param querable 071 * @param failOnException 072 * 073 * @param name 074 * name of the featuretype to access 075 * @param type 076 * type of the data source (REMOTEWCS, LOCALWCS) 077 * @param ows 078 * <tt>OGCWebService</tt> instance for accessing the data source 079 * @param capabilitiesURL 080 * @param scaleHint 081 * filter condition 082 * @param validArea 083 * @param getMap 084 * @param transparentColors 085 * @param featureInfoTransform 086 * @param reqTimeLimit 087 * @param passedParameters 088 * parameter names to be passed in incoming GetMap requests 089 * @param addedParameters 090 * parameters and values to be added to outgoing GetMap requests 091 */ 092 public RemoteWMSDataSource( boolean querable, boolean failOnException, QualifiedName name, int type, 093 OGCWebService ows, URL capabilitiesURL, ScaleHint scaleHint, Geometry validArea, 094 GetMap getMap, Color[] transparentColors, URL featureInfoTransform, int reqTimeLimit, 095 List<String> passedParameters, Map<String, String> addedParameters ) { 096 super( querable, failOnException, name, type, ows, capabilitiesURL, scaleHint, validArea, featureInfoTransform, 097 reqTimeLimit, null ); 098 this.getMap = getMap; 099 this.transparentColors = transparentColors; 100 this.passedParameters = passedParameters; 101 this.addedParameters = addedParameters; 102 } 103 104 /** 105 * returns an instance of a <tt>GetMapRequest</tt> encapsulating the filter conditions against a remote WMS. The 106 * request object contains: WMTVER, LAYERS, STYLES, FORMAT, TRANSPARENT, VENDORSPECIFICPARAMETERS 107 * 108 * @return filter conditions 109 * 110 */ 111 public GetMap getGetMapRequest() { 112 return getMap; 113 } 114 115 /** 116 * @return an array of colors that shall be treated as transparent 117 */ 118 public Color[] getTransparentColors() { 119 return transparentColors; 120 } 121 122 /** 123 * returns an instance of the <tt>OGCWebService</tt> that represents the datasource. Notice: if more than one layer 124 * uses data that are offered by the same OWS the deegree WMS shall just use one instance for accessing the OWS 125 * 126 */ 127 @Override 128 public OGCWebService getOGCWebService() { 129 try { 130 return new RemoteWMService( (WMSCapabilities) ows.getCapabilities() ); 131 } catch ( Exception ignore ) { 132 // this is ignored, why? 133 } 134 return null; 135 } 136 137 /** 138 * @return a list of parameter names to be passed from incoming requests 139 */ 140 public List<String> getPassedParameters() { 141 return passedParameters; 142 } 143 144 /** 145 * @return a list of parameters to be added to outgoing requests 146 */ 147 public Map<String, String> getAddedParameters() { 148 return addedParameters; 149 } 150 151 }