001 //$HeadURL: svn+ssh://jwilden@svn.wald.intevation.org/deegree/base/branches/2.5_testing/src/org/deegree/ogcwebservices/wfs/configuration/WFSDeegreeParams.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.wfs.configuration; 037 038 import java.io.File; 039 040 import org.deegree.enterprise.DeegreeParams; 041 import org.deegree.io.datastore.LockManager; 042 import org.deegree.model.metadata.iso19115.OnlineResource; 043 import org.deegree.ogcwebservices.wfs.WFService; 044 045 /** 046 * Represents the specific <code>deegreeParams</code> section of the configuration document for a {@link WFService} 047 * instance. This class encapsulates the deegree WFS specific parameters and inherits the parameters from the 048 * {@link DeegreeParams} class. 049 * <p> 050 * It adds the following elements to the common <code>deegreeParams<code>: 051 * <table border="1"> 052 * <tr> 053 * <th>Name</th> 054 * <th>Mandatory</th> 055 * <th>Function</th> 056 * </tr> 057 * <tr> 058 * <td>DataDirectoryList/td> 059 * <td align="center">+</td> 060 * <td>List of directories to be scanned for featuretypes/datastores to be served by the WFS. 061 * </td> 062 * <td>LockManagerDirectory/td> 063 * <td align="center">-</td> 064 * <td>Directory where information about locked features is stored.</td> 065 * </td> 066 * </tr> 067 * </table> 068 * 069 * @see org.deegree.enterprise.DeegreeParams 070 * 071 * @author <a href="mailto:mschneider@lat-lon.de">Markus Schneider </a> 072 * @author last edited by: $Author: mschneider $ 073 * 074 * @version $Revision: 18195 $, $Date: 2009-06-18 17:55:39 +0200 (Do, 18 Jun 2009) $ 075 */ 076 public class WFSDeegreeParams extends DeegreeParams { 077 078 private static final long serialVersionUID = 2425998383206611958L; 079 080 private String[] dataDirectories; 081 082 private File lockManagerDirectory; 083 084 private boolean checkUTMZones; 085 086 private static boolean switchAxes; 087 088 private boolean printGeomGmlIds; 089 090 /** 091 * Creates a new <code>WFSDeegreeParams</code> instance. 092 * 093 * @param defaultOnlineResource 094 * @param cacheSize 095 * @param requestTimeLimit 096 * @param characterSet 097 * @param dataDirectories 098 * @param lockManagerDirectory 099 * may be null 100 */ 101 WFSDeegreeParams( OnlineResource defaultOnlineResource, int cacheSize, int requestTimeLimit, String characterSet, 102 String[] dataDirectories, File lockManagerDirectory ) { 103 super( defaultOnlineResource, cacheSize, requestTimeLimit, characterSet ); 104 this.dataDirectories = dataDirectories; 105 this.lockManagerDirectory = lockManagerDirectory; 106 } 107 108 WFSDeegreeParams( OnlineResource defaultOnlineResource, int cacheSize, int requestTimeLimit, String characterSet, 109 String[] dataDirectories, File lockManagerDirectory, boolean checkUTMZones ) { 110 this( defaultOnlineResource, cacheSize, requestTimeLimit, characterSet, dataDirectories, lockManagerDirectory ); 111 this.checkUTMZones = checkUTMZones; 112 } 113 114 WFSDeegreeParams( OnlineResource defaultOnlineResource, int cacheSize, int requestTimeLimit, String characterSet, 115 String[] dataDirectories, File lockManagerDirectory, boolean checkUTMZones, boolean switchAxes ) { 116 this( defaultOnlineResource, cacheSize, requestTimeLimit, characterSet, dataDirectories, lockManagerDirectory, 117 checkUTMZones ); 118 WFSDeegreeParams.switchAxes = switchAxes; 119 } 120 121 WFSDeegreeParams( OnlineResource defaultOnlineResource, int cacheSize, int requestTimeLimit, String characterSet, 122 String[] dataDirectories, File lockManagerDirectory, boolean checkUTMZones, boolean switchAxes, 123 boolean printGeomGmlIds ) { 124 this( defaultOnlineResource, cacheSize, requestTimeLimit, characterSet, dataDirectories, lockManagerDirectory, 125 checkUTMZones, switchAxes ); 126 this.printGeomGmlIds = printGeomGmlIds; 127 } 128 129 /** 130 * Returns the resolved (absolute) data directory paths. 131 * 132 * @return the resolved (absolute) data directory paths 133 */ 134 public String[] getDataDirectories() { 135 return this.dataDirectories; 136 } 137 138 /** 139 * Returns the directory where the {@link LockManager} will store its files. 140 * 141 * @return the directory where the {@link LockManager} will store its files, may be null 142 */ 143 public File getLockManagerDirectory() { 144 return this.lockManagerDirectory; 145 } 146 147 /** 148 * @return whether to check for correct UTM zones in bounding boxes 149 */ 150 public boolean checkUTMZones() { 151 return checkUTMZones; 152 } 153 154 /** 155 * Please note that this is a global setting! 156 * 157 * @return whether to switch x/y to y/x for EPSG 4326 158 */ 159 public static boolean getSwitchAxes() { 160 return switchAxes; 161 } 162 163 /** 164 * Please note that this is a global setting! 165 * 166 * @return whether to print out GML ids for geometries. 167 */ 168 public boolean printGeometryGmlIds() { 169 return printGeomGmlIds; 170 } 171 172 }