    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    }