Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/factory/OrtFactory.java @ 1287:3383ca19f7a5
Fixed query to find ort by staat.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Wed, 08 Feb 2017 12:01:07 +0100 |
parents | 7da497d142a2 |
children |
rev | line source |
---|---|
1195
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
3 * |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU GPL (v>=3) |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
6 * the documentation coming with IMIS-Labordaten-Application for details. |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
7 */ |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
8 package de.intevation.lada.factory; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
9 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
10 import java.util.ArrayList; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
11 import java.util.List; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
12 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
13 import javax.inject.Inject; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
14 import javax.persistence.Query; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
15 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
16 import org.apache.log4j.Logger; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
17 import org.geotools.geometry.jts.JTS; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
18 import org.geotools.referencing.CRS; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
19 import org.opengis.referencing.FactoryException; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
20 import org.opengis.referencing.crs.CoordinateReferenceSystem; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
21 import org.opengis.referencing.operation.MathTransform; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
22 import org.opengis.referencing.operation.TransformException; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
23 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
24 import com.vividsolutions.jts.geom.Coordinate; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
25 import com.vividsolutions.jts.geom.GeometryFactory; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
26 import com.vividsolutions.jts.geom.Point; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
27 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
28 import de.intevation.lada.importer.ReportItem; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
29 import de.intevation.lada.model.stammdaten.Ort; |
1261
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
30 import de.intevation.lada.model.stammdaten.Staat; |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
31 import de.intevation.lada.model.stammdaten.Verwaltungseinheit; |
1195
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
32 import de.intevation.lada.util.annotation.RepositoryConfig; |
1261
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
33 import de.intevation.lada.util.data.QueryBuilder; |
1195
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
34 import de.intevation.lada.util.data.Repository; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
35 import de.intevation.lada.util.data.RepositoryType; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
36 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
37 public class OrtFactory { |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
38 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
39 @Inject |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
40 private Logger logger; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
41 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
42 @Inject |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
43 @RepositoryConfig(type=RepositoryType.RO) |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
44 private Repository repository; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
45 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
46 private List<ReportItem> errors; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
47 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
48 public void transformCoordinates(Ort ort) { |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
49 errors = new ArrayList<ReportItem>(); |
1261
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
50 Integer kda = ort.getKdaId(); |
1195
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
51 String epsg = null; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
52 String xCoord = null; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
53 String yCoord = null; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
54 switch(kda) { |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
55 case 4: epsg = "EPSG:4326"; |
1217
99e7ede1f37c
Put latitude and longitude in correct order for EPSG:4326.
Tom Gottfried <tom@intevation.de>
parents:
1211
diff
changeset
|
56 /* EPSG:4326 defines the order of latitude and longitude |
99e7ede1f37c
Put latitude and longitude in correct order for EPSG:4326.
Tom Gottfried <tom@intevation.de>
parents:
1211
diff
changeset
|
57 * the other way round than IMIS coordinates specification. |
99e7ede1f37c
Put latitude and longitude in correct order for EPSG:4326.
Tom Gottfried <tom@intevation.de>
parents:
1211
diff
changeset
|
58 */ |
99e7ede1f37c
Put latitude and longitude in correct order for EPSG:4326.
Tom Gottfried <tom@intevation.de>
parents:
1211
diff
changeset
|
59 xCoord = ort.getKoordYExtern(); |
99e7ede1f37c
Put latitude and longitude in correct order for EPSG:4326.
Tom Gottfried <tom@intevation.de>
parents:
1211
diff
changeset
|
60 yCoord = ort.getKoordXExtern(); |
1195
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
61 break; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
62 case 5: epsg = getEpsgForWgsUtm(ort.getKoordXExtern()); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
63 xCoord = ort.getKoordXExtern().length() == 7 ? |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
64 ort.getKoordXExtern().substring(1, 7) : |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
65 ort.getKoordXExtern().substring(2, 8); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
66 yCoord = ort.getKoordYExtern(); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
67 break; |
1211
f5bedfc7bcc6
Handle unknown and not yet implemented Koordinatenart.
Tom Gottfried <tom@intevation.de>
parents:
1204
diff
changeset
|
68 default: ReportItem err = new ReportItem(); |
f5bedfc7bcc6
Handle unknown and not yet implemented Koordinatenart.
Tom Gottfried <tom@intevation.de>
parents:
1204
diff
changeset
|
69 err.setCode(612); |
f5bedfc7bcc6
Handle unknown and not yet implemented Koordinatenart.
Tom Gottfried <tom@intevation.de>
parents:
1204
diff
changeset
|
70 err.setKey("kdaId"); |
f5bedfc7bcc6
Handle unknown and not yet implemented Koordinatenart.
Tom Gottfried <tom@intevation.de>
parents:
1204
diff
changeset
|
71 err.setValue(ort.getKdaId().toString()); |
f5bedfc7bcc6
Handle unknown and not yet implemented Koordinatenart.
Tom Gottfried <tom@intevation.de>
parents:
1204
diff
changeset
|
72 errors.add(err); |
f5bedfc7bcc6
Handle unknown and not yet implemented Koordinatenart.
Tom Gottfried <tom@intevation.de>
parents:
1204
diff
changeset
|
73 return; |
1195
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
74 } |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
75 try { |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
76 CoordinateReferenceSystem src = CRS.decode(epsg); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
77 CoordinateReferenceSystem target = CRS.decode("EPSG:4326"); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
78 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
79 MathTransform transform = CRS.findMathTransform(src, target); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
80 Coordinate srcCoord = new Coordinate(); |
1280
a851fc69130c
Allow koord_*_extern to contain comma or dot as decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1261
diff
changeset
|
81 srcCoord.x = Double.valueOf(xCoord.replace(",", ".")); |
a851fc69130c
Allow koord_*_extern to contain comma or dot as decimal separator.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1261
diff
changeset
|
82 srcCoord.y = Double.valueOf(yCoord.replace(",", ".")); |
1195
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
83 Coordinate targetCoord = new Coordinate(); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
84 JTS.transform(srcCoord, targetCoord, transform); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
85 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
86 ort.setGeom(generateGeom(targetCoord.y, targetCoord.x)); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
87 } catch (FactoryException | |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
88 TransformException e) { |
1238
a81de70d321d
Keep the potential details in a log file.
Tom Gottfried <tom@intevation.de>
parents:
1217
diff
changeset
|
89 logger.error(e.getMessage()); |
1195
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
90 ReportItem err = new ReportItem(); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
91 err.setCode(672); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
92 err.setKey("coordinates"); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
93 err.setValue(ort.getKdaId() + " " + |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
94 ort.getKoordXExtern() + " " + ort.getKoordYExtern()); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
95 errors.add(err); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
96 return; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
97 } |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
98 } |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
99 |
1261
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
100 /** |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
101 * Use given attribute to try to add other attributes. |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
102 * To set futher attributes at least one of the following attribute set |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
103 * need to be present: |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
104 * - kda, x, y |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
105 * - gemId |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
106 * - staat |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
107 * |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
108 * @param kda The koordinatenart |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
109 * @param x The x coordinate |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
110 * @param y The y coordinate |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
111 * @param gemId The gemeinde id |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
112 * @param staat The staat id |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
113 */ |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
114 public Ort completeOrt(Ort ort) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
115 QueryBuilder<Ort> builder = |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
116 new QueryBuilder<Ort>( |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
117 repository.entityManager("stamm"), |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
118 Ort.class); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
119 logger.debug("try to make a complete ort"); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
120 if (ort.getKdaId() != null && |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
121 ort.getKoordXExtern() != null && |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
122 ort.getKoordYExtern() != null |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
123 ) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
124 logger.debug("has koordinates"); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
125 builder.and("kdaId", ort.getKdaId()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
126 builder.and("koordXExtern", ort.getKoordXExtern()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
127 builder.and("koordYExtern", ort.getKoordYExtern()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
128 builder.and("ozId", ort.getOzId()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
129 builder.and("netzbetreiberId", ort.getNetzbetreiberId()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
130 List<Ort> orte = repository.filterPlain(builder.getQuery(), "stamm"); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
131 if (orte != null && orte.size() > 0) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
132 return orte.get(0); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
133 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
134 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
135 else if (ort.getGemId() != null) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
136 logger.debug("has gemid"); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
137 builder.and("gemId", ort.getGemId()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
138 builder.and("ozId", ort.getOzId()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
139 builder.and("netzbetreiberId", ort.getNetzbetreiberId()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
140 List<Ort> orte = repository.filterPlain(builder.getQuery(), "stamm"); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
141 if (orte != null && orte.size() > 0) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
142 logger.debug("found ort: " + orte.get(0).getId()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
143 return orte.get(0); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
144 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
145 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
146 else if (ort.getStaatId() != null && |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
147 ort.getStaatId() != 0 |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
148 ) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
149 logger.debug("has staat"); |
1287
3383ca19f7a5
Fixed query to find ort by staat.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1286
diff
changeset
|
150 builder.and("staatId", ort.getStaatId()); |
1261
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
151 builder.and("ozId", ort.getOzId()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
152 builder.and("netzbetreiberId", ort.getNetzbetreiberId()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
153 List<Ort> orte = repository.filterPlain(builder.getQuery(), "stamm"); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
154 if (orte != null && orte.size() > 0) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
155 return orte.get(0); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
156 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
157 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
158 |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
159 logger.debug("no ort found"); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
160 return createOrt(ort); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
161 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
162 |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
163 private Ort createOrt(Ort ort) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
164 boolean hasKoord = false; |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
165 boolean hasGem = false; |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
166 boolean hasStaat = false; |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
167 if (ort.getKdaId() != null && |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
168 ort.getKoordXExtern() != null && |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
169 ort.getKoordYExtern() != null |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
170 ) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
171 logger.debug("transformCoordinates"); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
172 transformCoordinates(ort); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
173 hasKoord = true; |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
174 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
175 if (ort.getGemId() == null && hasKoord) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
176 logger.debug("findVerwaltungseinheit"); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
177 findVerwaltungseinheit(ort); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
178 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
179 if (ort.getGemId() != null){ |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
180 if (ort.getStaatId() == null) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
181 ort.setStaatId(0); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
182 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
183 Verwaltungseinheit v = repository.getByIdPlain( |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
184 Verwaltungseinheit.class, |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
185 ort.getGemId(), |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
186 "stamm"); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
187 if (!hasKoord) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
188 ort.setKdaId(4); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
189 ort.setKoordYExtern(String.valueOf(v.getMittelpunkt().getY())); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
190 ort.setKoordXExtern(String.valueOf(v.getMittelpunkt().getX())); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
191 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
192 if (ort.getKurztext() == null) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
193 ort.setKurztext(v.getBezeichnung()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
194 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
195 if (ort.getLangtext() == null) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
196 ort.setLangtext(v.getBezeichnung()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
197 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
198 if (ort.getBerichtstext() == null) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
199 ort.setBerichtstext(v.getBezeichnung()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
200 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
201 transformCoordinates(ort); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
202 hasGem = true; |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
203 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
204 if (ort.getStaatId() != null && |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
205 ort.getStaatId() != 0 && |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
206 !hasKoord && |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
207 !hasGem |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
208 ) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
209 Staat staat = |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
210 repository.getByIdPlain(Staat.class, ort.getStaatId(), "stamm"); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
211 ort.setKdaId(staat.getKdaId()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
212 ort.setKoordXExtern(staat.getKoordXExtern()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
213 ort.setKoordYExtern(staat.getKoordYExtern()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
214 ort.setKurztext(staat.getStaat()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
215 ort.setLangtext(staat.getStaat()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
216 if (staat.getStaatIso() != null) { |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
217 ort.setOrtId("Staat_" + staat.getStaatIso()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
218 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
219 ort.setBerichtstext(staat.getStaat()); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
220 transformCoordinates(ort); |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
221 hasStaat = true; |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
222 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
223 return ort; |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
224 } |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
225 |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
226 /** |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
227 * Use the geom of an ort object to determine the verwaltungseinheit. |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
228 * If verwaltungseinheit was found the gemId is used as reference in the ort |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
229 * object. |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
230 * |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
231 * @param ort The ort object |
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
232 */ |
1195
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
233 public void findVerwaltungseinheit(Ort ort) { |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
234 if (ort.getGeom() == null) { |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
235 return; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
236 } |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
237 Query q = repository.entityManager("stamm") |
1204
45308f8a4092
That statement has surely never been successfully tested.
Tom Gottfried <tom@intevation.de>
parents:
1195
diff
changeset
|
238 .createQuery("SELECT vg.gemId " + |
45308f8a4092
That statement has surely never been successfully tested.
Tom Gottfried <tom@intevation.de>
parents:
1195
diff
changeset
|
239 "FROM Verwaltungsgrenze vg " + |
1195
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
240 "WHERE contains(vg.shape, :geom) = TRUE"); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
241 q.setParameter("geom", ort.getGeom()); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
242 List<Object> ret = q.getResultList(); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
243 if (!ret.isEmpty()) { |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
244 ort.setGemId(ret.get(0).toString()); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
245 ort.setStaatId(0); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
246 } |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
247 return; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
248 } |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
249 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
250 private Point generateGeom(Double x, Double y) { |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
251 GeometryFactory geomFactory = new GeometryFactory(); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
252 Coordinate coord = new Coordinate(x, y); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
253 Point geom = geomFactory.createPoint(coord); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
254 geom.setSRID(4326); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
255 return geom; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
256 } |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
257 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
258 private String getEpsgForWgsUtm(String x) { |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
259 String epsg = "EPSG:326"; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
260 String part = x.split(",")[0]; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
261 String zone = part.length() == 7 ? ("0" + part.substring(0, 1)) : |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
262 part.substring(0, 2); |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
263 return epsg + zone; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
264 } |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
265 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
266 public List<ReportItem> getErrors() { |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
267 return errors; |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
268 } |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
269 |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
270 public boolean hasErrors() { |
1261
dc7dde59bb54
Moved rules to create an ort object to ort factory.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1238
diff
changeset
|
271 return !(errors == null) && !errors.isEmpty(); |
1195
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
272 } |
768a4c957a18
Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
273 } |