Mercurial > dive4elements > river
comparison backend/src/main/java/org/dive4elements/river/backend/FLYSCredentials.java @ 8971:50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
author | mschaefer |
---|---|
date | Tue, 03 Apr 2018 10:18:30 +0200 |
parents | cfafe5764509 |
children | abe069eb180c |
comparison
equal
deleted
inserted
replaced
8970:da5dc7446652 | 8971:50416a0df385 |
---|---|
7 */ | 7 */ |
8 | 8 |
9 package org.dive4elements.river.backend; | 9 package org.dive4elements.river.backend; |
10 | 10 |
11 import org.dive4elements.artifacts.common.utils.Config; | 11 import org.dive4elements.artifacts.common.utils.Config; |
12 | |
13 import org.dive4elements.river.model.Annotation; | 12 import org.dive4elements.river.model.Annotation; |
14 import org.dive4elements.river.model.AnnotationType; | 13 import org.dive4elements.river.model.AnnotationType; |
15 import org.dive4elements.river.model.Attribute; | 14 import org.dive4elements.river.model.Attribute; |
16 import org.dive4elements.river.model.AxisKind; | 15 import org.dive4elements.river.model.AxisKind; |
17 import org.dive4elements.river.model.BedHeight; | 16 import org.dive4elements.river.model.BedHeight; |
17 import org.dive4elements.river.model.BedHeightType; | |
18 import org.dive4elements.river.model.BedHeightValue; | 18 import org.dive4elements.river.model.BedHeightValue; |
19 import org.dive4elements.river.model.BedHeightType; | 19 import org.dive4elements.river.model.BoundaryKind; |
20 import org.dive4elements.river.model.Building; | 20 import org.dive4elements.river.model.Building; |
21 import org.dive4elements.river.model.BoundaryKind; | |
22 import org.dive4elements.river.model.CrossSection; | 21 import org.dive4elements.river.model.CrossSection; |
23 import org.dive4elements.river.model.CrossSectionLine; | 22 import org.dive4elements.river.model.CrossSectionLine; |
24 import org.dive4elements.river.model.CrossSectionPoint; | 23 import org.dive4elements.river.model.CrossSectionPoint; |
25 import org.dive4elements.river.model.CrossSectionTrack; | 24 import org.dive4elements.river.model.CrossSectionTrack; |
26 import org.dive4elements.river.model.CrossSectionTrackKind; | 25 import org.dive4elements.river.model.CrossSectionTrackKind; |
59 import org.dive4elements.river.model.MainValueType; | 58 import org.dive4elements.river.model.MainValueType; |
60 import org.dive4elements.river.model.MeasurementStation; | 59 import org.dive4elements.river.model.MeasurementStation; |
61 import org.dive4elements.river.model.MorphologicalWidth; | 60 import org.dive4elements.river.model.MorphologicalWidth; |
62 import org.dive4elements.river.model.MorphologicalWidthValue; | 61 import org.dive4elements.river.model.MorphologicalWidthValue; |
63 import org.dive4elements.river.model.NamedMainValue; | 62 import org.dive4elements.river.model.NamedMainValue; |
63 import org.dive4elements.river.model.OfficialLine; | |
64 import org.dive4elements.river.model.Porosity; | 64 import org.dive4elements.river.model.Porosity; |
65 import org.dive4elements.river.model.PorosityValue; | 65 import org.dive4elements.river.model.PorosityValue; |
66 import org.dive4elements.river.model.Position; | 66 import org.dive4elements.river.model.Position; |
67 import org.dive4elements.river.model.Range; | 67 import org.dive4elements.river.model.Range; |
68 import org.dive4elements.river.model.River; | 68 import org.dive4elements.river.model.River; |
69 import org.dive4elements.river.model.RiverAxis; | 69 import org.dive4elements.river.model.RiverAxis; |
70 import org.dive4elements.river.model.RiverAxisKm; | 70 import org.dive4elements.river.model.RiverAxisKm; |
71 import org.dive4elements.river.model.SQRelation; | 71 import org.dive4elements.river.model.SQRelation; |
72 import org.dive4elements.river.model.SQRelationValue; | 72 import org.dive4elements.river.model.SQRelationValue; |
73 import org.dive4elements.river.model.SectieKind; | 73 import org.dive4elements.river.model.SectieKind; |
74 import org.dive4elements.river.model.SobekKind; | |
75 import org.dive4elements.river.model.SeddbName; | 74 import org.dive4elements.river.model.SeddbName; |
76 import org.dive4elements.river.model.SedimentDensity; | 75 import org.dive4elements.river.model.SedimentDensity; |
77 import org.dive4elements.river.model.SedimentDensityValue; | 76 import org.dive4elements.river.model.SedimentDensityValue; |
78 import org.dive4elements.river.model.SedimentLoad; | 77 import org.dive4elements.river.model.SedimentLoad; |
79 import org.dive4elements.river.model.SedimentLoadValue; | |
80 import org.dive4elements.river.model.SedimentLoadLS; | 78 import org.dive4elements.river.model.SedimentLoadLS; |
81 import org.dive4elements.river.model.SedimentLoadLSValue; | 79 import org.dive4elements.river.model.SedimentLoadLSValue; |
80 import org.dive4elements.river.model.SedimentLoadValue; | |
81 import org.dive4elements.river.model.SobekKind; | |
82 import org.dive4elements.river.model.TimeInterval; | 82 import org.dive4elements.river.model.TimeInterval; |
83 import org.dive4elements.river.model.Unit; | 83 import org.dive4elements.river.model.Unit; |
84 import org.dive4elements.river.model.Wst; | 84 import org.dive4elements.river.model.Wst; |
85 import org.dive4elements.river.model.WstColumn; | 85 import org.dive4elements.river.model.WstColumn; |
86 import org.dive4elements.river.model.WstColumnQRange; | 86 import org.dive4elements.river.model.WstColumnQRange; |
87 import org.dive4elements.river.model.WstColumnValue; | 87 import org.dive4elements.river.model.WstColumnValue; |
88 import org.dive4elements.river.model.WstQRange; | 88 import org.dive4elements.river.model.WstQRange; |
89 import org.dive4elements.river.model.OfficialLine; | 89 import org.dive4elements.river.model.sinfo.BedMobility; |
90 import org.dive4elements.river.model.sinfo.BedMobilityValue; | |
91 import org.dive4elements.river.model.sinfo.Channel; | |
92 import org.dive4elements.river.model.sinfo.ChannelValue; | |
93 import org.dive4elements.river.model.sinfo.Collision; | |
94 import org.dive4elements.river.model.sinfo.CollisionType; | |
95 import org.dive4elements.river.model.sinfo.CollisionValue; | |
96 import org.dive4elements.river.model.sinfo.DailyDischarge; | |
97 import org.dive4elements.river.model.sinfo.DailyDischargeValue; | |
98 import org.dive4elements.river.model.sinfo.DepthEvolution; | |
99 import org.dive4elements.river.model.sinfo.DepthEvolutionValue; | |
100 import org.dive4elements.river.model.sinfo.FlowDepth; | |
101 import org.dive4elements.river.model.sinfo.FlowDepthColumn; | |
102 import org.dive4elements.river.model.sinfo.FlowDepthValue; | |
103 import org.dive4elements.river.model.sinfo.Infrastructure; | |
104 import org.dive4elements.river.model.sinfo.InfrastructureValue; | |
105 import org.dive4elements.river.model.sinfo.Tkh; | |
106 import org.dive4elements.river.model.sinfo.TkhColumn; | |
107 import org.dive4elements.river.model.sinfo.TkhValue; | |
108 import org.dive4elements.river.model.uinfo.Salix; | |
109 import org.dive4elements.river.model.uinfo.SalixRank; | |
110 import org.dive4elements.river.model.uinfo.SalixValue; | |
90 | 111 |
91 public class FLYSCredentials | 112 public class FLYSCredentials |
92 extends Credentials | 113 extends Credentials |
93 { | 114 { |
94 public static final String XPATH_USER = | 115 public static final String XPATH_USER = |
95 "/artifact-database/backend-database/user/text()"; | 116 "/artifact-database/backend-database/user/text()"; |
96 | 117 |
97 public static final String XPATH_PASSWORD = | 118 public static final String XPATH_PASSWORD = |
98 "/artifact-database/backend-database/password/text()"; | 119 "/artifact-database/backend-database/password/text()"; |
99 | 120 |
100 public static final String XPATH_DIALECT = | 121 public static final String XPATH_DIALECT = |
101 "/artifact-database/backend-database/dialect/text()"; | 122 "/artifact-database/backend-database/dialect/text()"; |
102 | 123 |
103 public static final String XPATH_DRIVER = | 124 public static final String XPATH_DRIVER = |
104 "/artifact-database/backend-database/driver/text()"; | 125 "/artifact-database/backend-database/driver/text()"; |
105 | 126 |
106 public static final String XPATH_URL = | 127 public static final String XPATH_URL = |
107 "/artifact-database/backend-database/url/text()"; | 128 "/artifact-database/backend-database/url/text()"; |
108 | 129 |
109 public static final String XPATH_CONNECTION_INIT_SQLS = | 130 public static final String XPATH_CONNECTION_INIT_SQLS = |
110 "/artifact-database/backend-database/connection-init-sqls/text()"; | 131 "/artifact-database/backend-database/connection-init-sqls/text()"; |
111 | 132 |
112 public static final String XPATH_VALIDATION_QUERY = | 133 public static final String XPATH_VALIDATION_QUERY = |
113 "/artifact-database/backend-database/validation-query/text()"; | 134 "/artifact-database/backend-database/validation-query/text()"; |
114 | 135 |
115 public static final String XPATH_MAX_WAIT = | 136 public static final String XPATH_MAX_WAIT = |
116 "/artifact-database/backend-database/max-wait/text()"; | 137 "/artifact-database/backend-database/max-wait/text()"; |
117 | 138 |
118 public static final String DEFAULT_USER = | 139 public static final String DEFAULT_USER = |
119 System.getProperty("flys.backend.user", "flys"); | 140 System.getProperty("flys.backend.user", "flys"); |
120 | 141 |
121 public static final String DEFAULT_PASSWORD = | 142 public static final String DEFAULT_PASSWORD = |
122 System.getProperty("flys.backend.password", "flys"); | 143 System.getProperty("flys.backend.password", "flys"); |
123 | 144 |
124 public static final String DEFAULT_DIALECT = | 145 public static final String DEFAULT_DIALECT = |
125 System.getProperty( | 146 System.getProperty( |
126 "flys.backend.dialect", | 147 "flys.backend.dialect", |
127 "org.hibernate.dialect.PostgreSQLDialect"); | 148 "org.hibernate.dialect.PostgreSQLDialect"); |
128 | 149 |
129 public static final String DEFAULT_DRIVER = | 150 public static final String DEFAULT_DRIVER = |
130 System.getProperty( | 151 System.getProperty( |
131 "flys.backend.driver", | 152 "flys.backend.driver", |
132 "org.postgresql.Driver"); | 153 "org.postgresql.Driver"); |
133 | 154 |
134 public static final String DEFAULT_URL = | 155 public static final String DEFAULT_URL = |
135 System.getProperty( | 156 System.getProperty( |
136 "flys.backend.url", | 157 "flys.backend.url", |
137 "jdbc:postgresql://localhost:5432/flys"); | 158 "jdbc:postgresql://localhost:5432/flys"); |
138 | 159 |
139 public static final String DEFAULT_CONNECTION_INIT_SQLS = | 160 public static final String DEFAULT_CONNECTION_INIT_SQLS = |
140 System.getProperty( | 161 System.getProperty( |
141 "flys.backend.connection.init.sqls"); | 162 "flys.backend.connection.init.sqls"); |
142 | 163 |
143 public static final String DEFAULT_VALIDATION_QUERY = | 164 public static final String DEFAULT_VALIDATION_QUERY = |
144 System.getProperty( | 165 System.getProperty( |
145 "flys.backend.connection.validation.query"); | 166 "flys.backend.connection.validation.query"); |
146 | 167 |
147 public static final String DEFAULT_MAX_WAIT = | 168 public static final String DEFAULT_MAX_WAIT = |
148 System.getProperty("flys.backend.connection.max.wait"); | 169 System.getProperty("flys.backend.connection.max.wait"); |
149 | 170 |
150 public static final Class [] CLASSES = { | 171 public static final Class [] CLASSES = { |
151 Annotation.class, | 172 Annotation.class, |
152 AnnotationType.class, | 173 AnnotationType.class, |
153 Attribute.class, | 174 Attribute.class, |
154 AxisKind.class, | 175 AxisKind.class, |
155 BedHeight.class, | 176 BedHeight.class, |
156 BedHeightValue.class, | 177 BedHeightValue.class, |
157 BedHeightType.class, | 178 BedHeightType.class, |
158 Building.class, | 179 Building.class, |
159 BoundaryKind.class, | 180 BoundaryKind.class, |
160 CrossSection.class, | 181 CrossSection.class, |
161 CrossSectionLine.class, | 182 CrossSectionLine.class, |
162 CrossSectionPoint.class, | 183 CrossSectionPoint.class, |
163 CrossSectionTrack.class, | 184 CrossSectionTrack.class, |
164 CrossSectionTrackKind.class, | 185 CrossSectionTrackKind.class, |
165 Depth.class, | 186 Depth.class, |
166 DGM.class, | 187 DGM.class, |
167 DischargeTable.class, | 188 DischargeTable.class, |
168 DischargeTableValue.class, | 189 DischargeTableValue.class, |
169 DischargeZone.class, | 190 DischargeZone.class, |
170 Edge.class, | 191 Edge.class, |
171 ElevationModel.class, | 192 ElevationModel.class, |
172 FedState.class, | 193 FedState.class, |
173 Fixpoint.class, | 194 Fixpoint.class, |
174 Floodmark.class, | 195 Floodmark.class, |
175 Floodplain.class, | 196 Floodplain.class, |
176 FloodplainKind.class, | 197 FloodplainKind.class, |
177 Floodmaps.class, | 198 Floodmaps.class, |
178 FlowVelocityMeasurement.class, | 199 FlowVelocityMeasurement.class, |
179 FlowVelocityMeasurementValue.class, | 200 FlowVelocityMeasurementValue.class, |
180 FlowVelocityModel.class, | 201 FlowVelocityModel.class, |
181 FlowVelocityModelValue.class, | 202 FlowVelocityModelValue.class, |
182 Gauge.class, | 203 Gauge.class, |
183 GrainFraction.class, | 204 GrainFraction.class, |
184 HWSKind.class, | 205 HWSKind.class, |
185 HWSLine.class, | 206 HWSLine.class, |
186 HWSPoint.class, | 207 HWSPoint.class, |
187 HydrBoundary.class, | 208 HydrBoundary.class, |
188 HydrBoundaryPoly.class, | 209 HydrBoundaryPoly.class, |
189 HYK.class, | 210 HYK.class, |
190 HYKEntry.class, | 211 HYKEntry.class, |
191 HYKFormation.class, | 212 HYKFormation.class, |
192 HYKFlowZoneType.class, | 213 HYKFlowZoneType.class, |
193 HYKFlowZone.class, | 214 HYKFlowZone.class, |
194 Jetty.class, | 215 Jetty.class, |
195 LocationSystem.class, | 216 LocationSystem.class, |
196 MainValueType.class, | 217 MainValueType.class, |
197 MeasurementStation.class, | 218 MeasurementStation.class, |
198 MorphologicalWidth.class, | 219 MorphologicalWidth.class, |
199 MorphologicalWidthValue.class, | 220 MorphologicalWidthValue.class, |
200 NamedMainValue.class, | 221 NamedMainValue.class, |
201 MainValue.class, | 222 MainValue.class, |
202 Position.class, | 223 Position.class, |
203 Range.class, | 224 Range.class, |
204 River.class, | 225 River.class, |
205 RiverAxis.class, | 226 RiverAxis.class, |
206 RiverAxisKm.class, | 227 RiverAxisKm.class, |
207 Porosity.class, | 228 Porosity.class, |
208 PorosityValue.class, | 229 PorosityValue.class, |
209 SectieKind.class, | 230 SectieKind.class, |
210 SobekKind.class, | 231 SobekKind.class, |
211 SeddbName.class, | 232 SeddbName.class, |
212 SedimentDensity.class, | 233 SedimentDensity.class, |
213 SedimentDensityValue.class, | 234 SedimentDensityValue.class, |
214 SedimentLoad.class, | 235 SedimentLoad.class, |
215 SedimentLoadValue.class, | 236 SedimentLoadValue.class, |
216 SedimentLoadLS.class, | 237 SedimentLoadLS.class, |
217 SedimentLoadLSValue.class, | 238 SedimentLoadLSValue.class, |
218 SQRelation.class, | 239 SQRelation.class, |
219 SQRelationValue.class, | 240 SQRelationValue.class, |
220 TimeInterval.class, | 241 TimeInterval.class, |
221 Unit.class, | 242 Unit.class, |
222 WstColumn.class, | 243 WstColumn.class, |
223 WstColumnQRange.class, | 244 WstColumnQRange.class, |
224 WstColumnValue.class, | 245 WstColumnValue.class, |
225 Wst.class, | 246 Wst.class, |
226 WstQRange.class, | 247 WstQRange.class, |
227 OfficialLine.class | 248 OfficialLine.class, |
249 BedMobility.class, | |
250 BedMobilityValue.class, | |
251 Infrastructure.class, | |
252 InfrastructureValue.class, | |
253 Channel.class, | |
254 ChannelValue.class, | |
255 CollisionType.class, | |
256 Collision.class, | |
257 CollisionValue.class, | |
258 DailyDischarge.class, | |
259 DailyDischargeValue.class, | |
260 SalixRank.class, | |
261 Salix.class, | |
262 SalixValue.class, | |
263 Tkh.class, | |
264 TkhColumn.class, | |
265 TkhValue.class, | |
266 FlowDepth.class, | |
267 FlowDepthColumn.class, | |
268 FlowDepthValue.class, | |
269 DepthEvolution.class, | |
270 DepthEvolutionValue.class | |
228 }; | 271 }; |
229 | 272 |
230 public FLYSCredentials() { | 273 public FLYSCredentials() { |
231 } | 274 } |
232 | 275 |
233 public FLYSCredentials( | 276 public FLYSCredentials( |
234 String user, | 277 final String user, |
235 String password, | 278 final String password, |
236 String dialect, | 279 final String dialect, |
237 String driver, | 280 final String driver, |
238 String url, | 281 final String url, |
239 String connectionInitSqls, | 282 final String connectionInitSqls, |
240 String validationQuery, | 283 final String validationQuery, |
241 String maxWait | 284 final String maxWait |
242 ) { | 285 ) { |
243 super( | 286 super( |
244 user, password, dialect, driver, url, | 287 user, password, dialect, driver, url, |
245 connectionInitSqls, validationQuery, maxWait, CLASSES); | 288 connectionInitSqls, validationQuery, maxWait, CLASSES); |
246 } | 289 } |
247 | 290 |
248 private static Credentials instance; | 291 private static Credentials instance; |
249 | 292 |
250 public static synchronized Credentials getInstance() { | 293 public static synchronized Credentials getInstance() { |
251 if (instance == null) { | 294 if (instance == null) { |
252 String user = | 295 final String user = |
253 Config.getStringXPath(XPATH_USER, DEFAULT_USER); | 296 Config.getStringXPath(XPATH_USER, DEFAULT_USER); |
254 String password = | 297 final String password = |
255 Config.getStringXPath(XPATH_PASSWORD, DEFAULT_PASSWORD); | 298 Config.getStringXPath(XPATH_PASSWORD, DEFAULT_PASSWORD); |
256 String dialect = | 299 final String dialect = |
257 Config.getStringXPath(XPATH_DIALECT, DEFAULT_DIALECT); | 300 Config.getStringXPath(XPATH_DIALECT, DEFAULT_DIALECT); |
258 String driver = | 301 final String driver = |
259 Config.getStringXPath(XPATH_DRIVER, DEFAULT_DRIVER); | 302 Config.getStringXPath(XPATH_DRIVER, DEFAULT_DRIVER); |
260 String url = | 303 final String url = |
261 Config.getStringXPath(XPATH_URL, DEFAULT_URL); | 304 Config.getStringXPath(XPATH_URL, DEFAULT_URL); |
262 String connectionInitSqls = | 305 final String connectionInitSqls = |
263 Config.getStringXPath( | 306 Config.getStringXPath( |
264 XPATH_CONNECTION_INIT_SQLS, | 307 XPATH_CONNECTION_INIT_SQLS, |
265 DEFAULT_CONNECTION_INIT_SQLS); | 308 DEFAULT_CONNECTION_INIT_SQLS); |
266 String validationQuery = | 309 final String validationQuery = |
267 Config.getStringXPath( | 310 Config.getStringXPath( |
268 XPATH_VALIDATION_QUERY, | 311 XPATH_VALIDATION_QUERY, |
269 DEFAULT_VALIDATION_QUERY); | 312 DEFAULT_VALIDATION_QUERY); |
270 String maxWait = | 313 final String maxWait = |
271 Config.getStringXPath(XPATH_MAX_WAIT, DEFAULT_MAX_WAIT); | 314 Config.getStringXPath(XPATH_MAX_WAIT, DEFAULT_MAX_WAIT); |
272 | 315 |
273 instance = new FLYSCredentials( | 316 instance = new FLYSCredentials( |
274 user, password, dialect, driver, url, connectionInitSqls, | 317 user, password, dialect, driver, url, connectionInitSqls, |
275 validationQuery, maxWait); | 318 validationQuery, maxWait); |
276 } | 319 } |
277 return instance; | 320 return instance; |
278 } | 321 } |
279 | 322 |
280 public static Credentials getDefault() { | 323 public static Credentials getDefault() { |
281 return new FLYSCredentials( | 324 return new FLYSCredentials( |
282 DEFAULT_USER, | 325 DEFAULT_USER, |
283 DEFAULT_PASSWORD, | 326 DEFAULT_PASSWORD, |
284 DEFAULT_DIALECT, | 327 DEFAULT_DIALECT, |
285 DEFAULT_DRIVER, | 328 DEFAULT_DRIVER, |
286 DEFAULT_URL, | 329 DEFAULT_URL, |
287 DEFAULT_CONNECTION_INIT_SQLS, | 330 DEFAULT_CONNECTION_INIT_SQLS, |
288 DEFAULT_VALIDATION_QUERY, | 331 DEFAULT_VALIDATION_QUERY, |
289 DEFAULT_MAX_WAIT | 332 DEFAULT_MAX_WAIT |
290 ); | 333 ); |
291 } | 334 } |
292 } | 335 } |
293 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 336 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |