annotate backend/src/main/java/org/dive4elements/river/importer/ImportEdge.java @ 8856:5e38e2924c07 3.2.x

Fix code style.
author Tom Gottfried <tom@intevation.de>
date Thu, 18 Jan 2018 20:12:01 +0100
parents 4c3ccf2b0304
children
rev   line source
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
6 * documentation coming with Dive4Elements River for details.
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
9 package org.dive4elements.river.importer;
759
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
11 import org.dive4elements.river.model.Edge;
759
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 import org.hibernate.Session;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 import org.hibernate.Query;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 import java.util.List;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 import java.math.BigDecimal;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20 public class ImportEdge
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21 implements Comparable<ImportEdge>
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 {
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 protected BigDecimal top;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24 protected BigDecimal bottom;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 protected Edge peer;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28 public ImportEdge() {
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 }
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31 public ImportEdge(BigDecimal top, BigDecimal bottom) {
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32 this.top = top;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 this.bottom = bottom;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 }
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
35
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 public BigDecimal getTop() {
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37 return top;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38 }
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40 public void setTop(BigDecimal top) {
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
41 this.top = top;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
42 }
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
44 public BigDecimal getBottom() {
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
45 return bottom;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
46 }
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
47
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
48 public void setBottom(BigDecimal bottom) {
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
49 this.bottom = bottom;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
50 }
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
51
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
52 private static final int compare(BigDecimal a, BigDecimal b) {
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
53 if (a == null && b != null) return -1;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
54 if (a != null && b == null) return +1;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
55 if (a == null && b == null) return 0;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
56 return a.compareTo(b);
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
57 }
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
58
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
59 public int compareTo(ImportEdge other) {
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
60 int cmp = compare(top, other.top);
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
61 return cmp != 0 ? cmp : compare(bottom, other.bottom);
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
62 }
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
63
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
64 public Edge getPeer() {
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
65 if (peer == null) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 5992
diff changeset
66 Session session = ImporterSession.getInstance()
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 5992
diff changeset
67 .getDatabaseSession();
759
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
68 Query query = session.createQuery(
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
69 "from Edge where top=:top and bottom=:bottom");
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
70 query.setParameter("top", top);
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
71 query.setParameter("bottom", bottom);
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
72 List<Edge> edges = query.list();
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
73 if (edges.isEmpty()) {
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
74 peer = new Edge(top, bottom);
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
75 session.save(peer);
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
76 }
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
77 else {
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
78 peer = edges.get(0);
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
79 }
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
80 }
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
81 return peer;
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
82 }
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
83 }
9f2204ed79ed Import edges to database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
84 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org