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 :

http://dive4elements.wald.intevation.org