001 // $HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/branches/2.2_testing/src/org/deegree/enterprise/DeegreeParams.java $ 002 /*---------------- FILE HEADER ------------------------------------------ 003 004 This file is part of deegree. 005 Copyright (C) 2001-2008 by: 006 EXSE, Department of Geography, University of Bonn 007 http://www.giub.uni-bonn.de/deegree/ 008 lat/lon GmbH 009 http://www.lat-lon.de 010 011 This library is free software; you can redistribute it and/or 012 modify it under the terms of the GNU Lesser General Public 013 License as published by the Free Software Foundation; either 014 version 2.1 of the License, or (at your option) any later version. 015 016 This library is distributed in the hope that it will be useful, 017 but WITHOUT ANY WARRANTY; without even the implied warranty of 018 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 019 Lesser General Public License for more details. 020 021 You should have received a copy of the GNU Lesser General Public 022 License along with this library; if not, write to the Free Software 023 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 024 025 Contact: 026 027 Andreas Poth 028 lat/lon GmbH 029 Aennchenstr. 19 030 53115 Bonn 031 Germany 032 E-Mail: poth@lat-lon.de 033 034 Prof. Dr. Klaus Greve 035 Department of Geography 036 University of Bonn 037 Meckenheimer Allee 166 038 53115 Bonn 039 Germany 040 E-Mail: greve@giub.uni-bonn.de 041 042 043 ---------------------------------------------------------------------------*/ 044 package org.deegree.enterprise; 045 046 import java.io.Serializable; 047 import java.nio.charset.Charset; 048 049 import org.deegree.model.metadata.iso19115.OnlineResource; 050 import org.deegree.ogcwebservices.wms.InvalidFormatException; 051 052 /** 053 * Base class for the <code>deegreeParams</code> section of configurations for all deegree web 054 * service types. The <code>deegreeParams</code> section contains deegree specific parameters that 055 * are not part of the OGC CSW capabilities specification. The concrete web service implementations 056 * (WMS, WFS CWS, ...) derive this class and add their specific configuration parameters. 057 * <p> 058 * The common <code>deegreeParams</code> elements are: <table border="1"> 059 * <tr> 060 * <th>Name</th> 061 * <th>Mandatory</th> 062 * <th>Function</th> 063 * </tr> 064 * <tr> 065 * <td>DefaultOnlineResource</td> 066 * <td align="center">X</td> 067 * <td>The DefaultOnlineResource will be used whenever a required OnlineResource is not defined.</td> 068 * </tr> 069 * <tr> 070 * <td>CacheSize</td> 071 * <td align="center">-</td> 072 * <td>Amount of Memory to use for caching, default = 100 (MB).</td> 073 * </tr> 074 * <tr> 075 * <td>RequestTimeLimit</td> 076 * <td align="center">-</td> 077 * <td>Maximum amount of time that is allowed for the execution of a request, defaults to 2 078 * minutes.</td> 079 * </tr> 080 * <tr> 081 * <td>Encoding</td> 082 * <td align="center">-</td> 083 * <td>String encoding, default is UTF-8.</td> 084 * </tr> 085 * </table> 086 * 087 * @author <a href="mailto:poth@lat-lon.de">Andreas Poth </a> 088 * @author <a href="mailto:mschneider@lat-lon.de">Markus Schneider </a> 089 * @author last edited by: $Author: apoth $ 090 * 091 * @version 2.0, $Revision: 9338 $, $Date: 2007-12-27 13:31:31 +0100 (Do, 27 Dez 2007) $ 092 * 093 * @since 2.0 094 */ 095 096 public abstract class DeegreeParams implements Serializable { 097 098 private OnlineResource defaultOnlineResource = null; 099 100 private int cacheSize = 100; 101 102 private int requestTimeLimit = 0; 103 104 private Charset characterSet = null; 105 106 /** 107 * Creates a new instance of DeegreeParams with characterSet set to UTF-8. 108 * 109 * @param defaultOnlineResource 110 * @param cacheSize 111 * @param requestTimeLimit 112 * in milliseconds 113 */ 114 public DeegreeParams( OnlineResource defaultOnlineResource, int cacheSize, int requestTimeLimit ) { 115 this.defaultOnlineResource = defaultOnlineResource; 116 this.cacheSize = cacheSize; 117 this.requestTimeLimit = requestTimeLimit; 118 if ( Charset.isSupported( "UTF-8" ) ) {// UTF-8 mus be supported 119 this.characterSet = Charset.forName( "UTF-8" ); 120 } 121 } 122 123 /** 124 * Creates a new instance of DeegreeParams. 125 * 126 * @param defaultOnlineResource 127 * @param cacheSize 128 * @param requestTimeLimit 129 * @param characterSet 130 */ 131 public DeegreeParams( OnlineResource defaultOnlineResource, int cacheSize, int requestTimeLimit, String characterSet ) { 132 this.defaultOnlineResource = defaultOnlineResource; 133 this.cacheSize = cacheSize; 134 this.requestTimeLimit = requestTimeLimit; 135 if ( Charset.isSupported( characterSet ) ) { 136 this.characterSet = Charset.forName( characterSet ); 137 } else if ( Charset.isSupported( "UTF-8" ) ) {// UTF-8 mus be supported 138 this.characterSet = Charset.forName( "UTF-8" ); 139 } 140 } 141 142 /** 143 * Returns the CacheSize. 144 * 145 * @return the size 146 */ 147 public int getCacheSize() { 148 return cacheSize; 149 } 150 151 /** 152 * Sets the CacheSize. 153 * 154 * @param cacheSize 155 */ 156 public void setCacheSize( int cacheSize ) { 157 this.cacheSize = cacheSize; 158 } 159 160 /** 161 * Returns the defaultOnlineResource. 162 * 163 * @return the URL 164 */ 165 public OnlineResource getDefaultOnlineResource() { 166 return defaultOnlineResource; 167 } 168 169 /** 170 * Sets the defaultOnlineResource. 171 * 172 * @param defaultOnlineResource 173 */ 174 public void setDefaultOnlineResource( OnlineResource defaultOnlineResource ) { 175 this.defaultOnlineResource = defaultOnlineResource; 176 } 177 178 /** 179 * @return the requestTimeLimit, in milliseconds. 180 */ 181 public int getRequestTimeLimit() { 182 return requestTimeLimit; 183 } 184 185 /** 186 * Sets the requestTimeLimit. 187 * 188 * @param requestTimeLimit 189 * 190 */ 191 public void setRequestTimeLimit( int requestTimeLimit ) { 192 this.requestTimeLimit = requestTimeLimit; 193 } 194 195 /** 196 * Returns the characterSet. 197 * 198 * @return the charset 199 * 200 */ 201 public String getCharacterSet() { 202 return characterSet.displayName(); 203 } 204 205 /** 206 * @return the Charset requested by the deegreeparams. 207 */ 208 public Charset getCharset() { 209 return characterSet; 210 } 211 212 /** 213 * Sets the characterSet. 214 * 215 * @param characterSet 216 * @throws InvalidFormatException 217 * 218 */ 219 public void setCharacterSet( String characterSet ) 220 throws InvalidFormatException { 221 if ( Charset.isSupported( characterSet ) ) { 222 this.characterSet = Charset.forName( characterSet ); 223 } else { 224 throw new InvalidFormatException( "DeegreeParams: The given charset is not supported by the jvm" ); 225 } 226 } 227 228 }