001 //$HeadURL: svn+ssh://developername@svn.wald.intevation.org/deegree/base/trunk/src/org/deegree/ogcwebservices/wms/configuration/DatabaseDataSource.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.util.Map; 039 040 import org.deegree.datatypes.QualifiedName; 041 import org.deegree.io.JDBCConnection; 042 import org.deegree.model.crs.CoordinateSystem; 043 import org.deegree.model.spatialschema.Geometry; 044 import org.deegree.ogcwebservices.OGCWebService; 045 import org.deegree.ogcwebservices.OGCWebServiceException; 046 import org.deegree.ogcwebservices.wms.capabilities.ScaleHint; 047 048 /** 049 * 050 * 051 * 052 * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a> 053 * @author last edited by: $Author: poth $ 054 * 055 * @version $Revision: 6251 $, $Date: 2007-03-19 16:59:28 +0100 (Mo, 19 Mrz 2007) $ 056 */ 057 public class DatabaseDataSource extends AbstractDataSource { 058 059 private JDBCConnection jdbc; 060 061 private String sqlTemplate; 062 063 private String geomeryField; 064 065 private CoordinateSystem nativeCRS; 066 067 private final boolean customSQL; 068 069 /** 070 * 071 * @param queryable 072 * @param failOnException 073 * @param name 074 * @param scaleHint 075 * @param validArea 076 * @param reqTimeLimit 077 * @param jdbc 078 * @param sqlTemplate 079 * @param geomeryField 080 * @param nativeCRS 081 */ 082 public DatabaseDataSource( boolean queryable, boolean failOnException, QualifiedName name, ScaleHint scaleHint, 083 Geometry validArea, int reqTimeLimit, JDBCConnection jdbc, String sqlTemplate, 084 String geomeryField, CoordinateSystem nativeCRS ) { 085 this( queryable, failOnException, name, scaleHint, validArea, reqTimeLimit, jdbc, sqlTemplate, geomeryField, 086 nativeCRS, false ); 087 } 088 089 /** 090 * @param queryable 091 * @param failOnException 092 * @param name 093 * @param scaleHint 094 * @param validArea 095 * @param reqTimeLimit 096 * @param jdbc 097 * @param sqlTemplate 098 * @param geometryField 099 * @param nativeCRS 100 * @param customSQL 101 */ 102 public DatabaseDataSource( boolean queryable, boolean failOnException, QualifiedName name, ScaleHint scaleHint, 103 Geometry validArea, int reqTimeLimit, JDBCConnection jdbc, String sqlTemplate, 104 String geometryField, CoordinateSystem nativeCRS, boolean customSQL ) { 105 this( queryable, failOnException, name, scaleHint, validArea, reqTimeLimit, jdbc, sqlTemplate, geometryField, 106 nativeCRS, customSQL, null ); 107 } 108 109 /** 110 * @param queryable 111 * @param failOnException 112 * @param name 113 * @param scaleHint 114 * @param validArea 115 * @param reqTimeLimit 116 * @param jdbc 117 * @param sqlTemplate 118 * @param geomeryField 119 * @param nativeCRS 120 * @param customSQL 121 * @param dimProps 122 */ 123 public DatabaseDataSource( boolean queryable, boolean failOnException, QualifiedName name, ScaleHint scaleHint, 124 Geometry validArea, int reqTimeLimit, JDBCConnection jdbc, String sqlTemplate, 125 String geomeryField, CoordinateSystem nativeCRS, boolean customSQL, 126 Map<String, String> dimProps ) { 127 super( queryable, failOnException, name, DATABASE, null, null, scaleHint, validArea, null, reqTimeLimit, 128 dimProps ); 129 this.jdbc = jdbc; 130 this.sqlTemplate = sqlTemplate; 131 this.geomeryField = geomeryField; 132 this.nativeCRS = nativeCRS; 133 this.customSQL = customSQL; 134 } 135 136 /* 137 * (non-Javadoc) 138 * 139 * @see org.deegree.ogcwebservices.wms.configuration.AbstractDataSource#getOGCWebService() 140 */ 141 @Override 142 public OGCWebService getOGCWebService() 143 throws OGCWebServiceException { 144 return null; 145 } 146 147 /** 148 * 149 * @return database connection description 150 */ 151 public JDBCConnection getJDBCConnection() { 152 return jdbc; 153 } 154 155 /** 156 * @return the geomeryField 157 */ 158 public String getGeometryFieldName() { 159 return geomeryField; 160 } 161 162 /** 163 * @return the sqlTemplate 164 */ 165 public String getSqlTemplate() { 166 return sqlTemplate; 167 } 168 169 /** 170 * @return the nativeCRS 171 */ 172 public CoordinateSystem getNativeCRS() { 173 return nativeCRS; 174 } 175 176 /** 177 * @return true, if sending custom SQL templates is allowed 178 */ 179 public boolean isCustomSQLAllowed() { 180 return customSQL; 181 } 182 183 }