001 //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/branches/2.3_testing/src/org/deegree/ogcwebservices/sos/configuration/SOSDeegreeParams.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.sos.configuration;
037
038 import java.util.ArrayList;
039
040 import org.deegree.enterprise.DeegreeParams;
041 import org.deegree.model.metadata.iso19115.OnlineResource;
042
043 /**
044 * Describe the SCSDeegreeParams, is a part of the SCSConfiguration
045 *
046 * @author <a href="mailto:mkulbe@lat-lon.de">Matthias Kulbe </a>
047 *
048 * @version 1.0
049 */
050
051 public class SOSDeegreeParams extends DeegreeParams {
052
053 private static final long serialVersionUID = -9133552111738123545L;
054
055 private ArrayList<SensorConfiguration> sensorConfigs = null;
056
057 private ArrayList<PlatformConfiguration> platformConfigs = null;
058
059 private ArrayList<SourceServerConfiguration> sourceServerConfigs = null;
060
061 private int sourceServerTimeLimit = 0;
062
063 /**
064 * constructor
065 *
066 * @param defaultOnlineResource
067 * @param cacheSize
068 * @param requestTimeLimit
069 * @param characterSet
070 * @param sourceServerTimeLimit
071 * @param sensorConfigs
072 * @param platformConfigs
073 * @param sourceServerConfigs
074 */
075 public SOSDeegreeParams( OnlineResource defaultOnlineResource, int cacheSize, int requestTimeLimit,
076 String characterSet, int sourceServerTimeLimit, SensorConfiguration[] sensorConfigs,
077 PlatformConfiguration[] platformConfigs, SourceServerConfiguration[] sourceServerConfigs ) {
078
079 super( defaultOnlineResource, cacheSize, requestTimeLimit, characterSet );
080
081 this.sourceServerTimeLimit = sourceServerTimeLimit;
082
083 if ( sensorConfigs != null ) {
084 this.sensorConfigs = new ArrayList<SensorConfiguration>( sensorConfigs.length );
085 for ( int i = 0; i < sensorConfigs.length; i++ ) {
086 this.sensorConfigs.add( sensorConfigs[i] );
087 }
088 } else {
089 this.sensorConfigs = new ArrayList<SensorConfiguration>( 1 );
090 }
091
092 if ( platformConfigs != null ) {
093 this.platformConfigs = new ArrayList<PlatformConfiguration>( platformConfigs.length );
094 for ( int i = 0; i < platformConfigs.length; i++ ) {
095 this.platformConfigs.add( platformConfigs[i] );
096 }
097 } else {
098 this.platformConfigs = new ArrayList<PlatformConfiguration>( 1 );
099 }
100
101 if ( sourceServerConfigs != null ) {
102 this.sourceServerConfigs = new ArrayList<SourceServerConfiguration>( sourceServerConfigs.length );
103 for ( int i = 0; i < sourceServerConfigs.length; i++ ) {
104 this.sourceServerConfigs.add( sourceServerConfigs[i] );
105 }
106 } else {
107 this.sourceServerConfigs = new ArrayList<SourceServerConfiguration>( 1 );
108 }
109
110 }
111
112 /**
113 * gets the platform configuration by id
114 *
115 * @param id
116 * @return the config
117 */
118 public PlatformConfiguration getPlatformConfiguration( String id ) {
119 for ( int i = 0; i < platformConfigs.size(); i++ ) {
120 if ( platformConfigs.get( i ).getId().equals( id ) ) {
121 return platformConfigs.get( i );
122 }
123 }
124 return null;
125 }
126
127 /**
128 * gets the Platform Configuration by the IdPropertyValue which is set in the configuration
129 *
130 * @param id
131 * @return the config
132 */
133 public PlatformConfiguration getPlatformConfigurationByIdPropertyValue( String id ) {
134 for ( int i = 0; i < platformConfigs.size(); i++ ) {
135 String s = platformConfigs.get( i ).getIdPropertyValue();
136 if ( s.equals( id ) ) {
137 return platformConfigs.get( i );
138 }
139 }
140
141 return null;
142 }
143
144 /**
145 * gets all platform configs
146 *
147 * @return the configs
148 */
149 public PlatformConfiguration[] getPlatformConfigurations() {
150 return this.platformConfigs.toArray( new PlatformConfiguration[this.platformConfigs.size()] );
151 }
152
153 /**
154 * gets the sensor configuration by id
155 *
156 * @param id
157 * @return the config
158 */
159 public SensorConfiguration getSensorConfiguration( String id ) {
160 for ( int i = 0; i < sensorConfigs.size(); i++ ) {
161 if ( sensorConfigs.get( i ).getId().equals( id ) ) {
162 return sensorConfigs.get( i );
163 }
164
165 }
166
167 return null;
168 }
169
170 /**
171 * gets the Sensor Configuration by the IdPropertyValue which is set in the configuration
172 *
173 * @param id
174 * @return the config
175 */
176 public SensorConfiguration getSensorConfigurationByIdPropertyValue( String id ) {
177 for ( int i = 0; i < this.sensorConfigs.size(); i++ ) {
178 SensorConfiguration sc = this.sensorConfigs.get( i );
179 String s = sc.getId();
180
181 if ( s.equals( id ) ) {
182 return this.sensorConfigs.get( i );
183 }
184 }
185
186 return null;
187 }
188
189 /**
190 * gets all sensor configs
191 *
192 * @return the configs
193 */
194 public SensorConfiguration[] getSensorConfigurations() {
195 return this.sensorConfigs.toArray( new SensorConfiguration[this.sensorConfigs.size()] );
196 }
197
198 /**
199 * @return the limit
200 */
201 public int getSourceServerTimeLimit() {
202 return sourceServerTimeLimit;
203 }
204
205 /**
206 * gets all sourceServer Configurations
207 *
208 * @return the configs
209 */
210 public SourceServerConfiguration[] getSourceServerConfigurations() {
211 return this.sourceServerConfigs.toArray( new SourceServerConfiguration[this.sourceServerConfigs.size()] );
212 }
213
214 /**
215 * gets the sourceServer config by the given id
216 *
217 * @param id
218 * @return the config
219 */
220 public SourceServerConfiguration getSourceServerConfiguration( String id ) {
221 for ( int i = 0; i < this.sourceServerConfigs.size(); i++ ) {
222 if ( this.sourceServerConfigs.get( i ).getId().equals( id ) ) {
223 return this.sourceServerConfigs.get( i );
224 }
225 }
226 return null;
227 }
228
229 }