Mercurial > dive4elements > river
annotate backend/src/main/java/org/dive4elements/river/importer/sinfo/importitem/CollisionTypeImport.java @ 9657:a79881a892c9
Importer (s/u-info) extensions: depth-evolution: corrected directory name Bezug_aktueller_GlW,
detecting and logging of wrong units, then cancelling,
various checks of the plausibility of the meta data year values and cancelling in case of errors,
detecting and logging missing change values, skipping those lines
author | mschaefer |
---|---|
date | Mon, 23 Mar 2020 15:26:50 +0100 |
parents | 50416a0df385 |
children |
rev | line source |
---|---|
8971
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
1 /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
2 * Software engineering by |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
3 * Björnsen Beratende Ingenieure GmbH |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
5 * |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
6 * This file is Free Software under the GNU AGPL (>=v3) |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
8 * documentation coming with Dive4Elements River for details. |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
9 */ |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
10 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
11 package org.dive4elements.river.importer.sinfo.importitem; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
12 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
13 import java.util.List; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
14 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
15 import org.apache.log4j.Logger; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
16 import org.dive4elements.river.importer.ImporterSession; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
17 import org.dive4elements.river.model.sinfo.CollisionType; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
18 import org.hibernate.Query; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
19 import org.hibernate.Session; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
20 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
21 /** |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
22 * Imported collision type |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
23 * |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
24 * @author Matthias Schäfer |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
25 * |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
26 */ |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
27 public class CollisionTypeImport implements Comparable<CollisionTypeImport> { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
28 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
29 /***** FIELDS *****/ |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
30 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
31 private static final Logger log = Logger.getLogger(CollisionTypeImport.class); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
32 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
33 protected String name; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
34 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
35 protected CollisionType peer; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
36 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
37 /***** CONSTRUCTOR *****/ |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
38 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
39 public CollisionTypeImport() { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
40 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
41 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
42 public CollisionTypeImport(final String name) { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
43 this.name = name; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
44 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
45 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
46 /***** METHODS *****/ |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
47 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
48 @Override |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
49 public int compareTo(final CollisionTypeImport other) { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
50 return this.name.compareTo(other.name); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
51 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
52 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
53 @Override |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
54 public int hashCode() { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
55 return this.name.hashCode(); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
56 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
57 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
58 public String getName() { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
59 return this.name; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
60 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
61 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
62 public void setName(final String name) { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
63 this.name = name; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
64 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
65 |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
66 public CollisionType getPeer() { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
67 if (this.peer != null) |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
68 return this.peer; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
69 final Session session = ImporterSession.getInstance().getDatabaseSession(); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
70 final Query query = session.createQuery("FROM CollisionType WHERE lower(name)=:name"); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
71 query.setParameter("name", this.name.trim().toLowerCase()); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
72 final List<CollisionType> types = query.list(); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
73 if (types.isEmpty()) { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
74 this.peer = new CollisionType(this.name); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
75 session.save(this.peer); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
76 log.info(String.format("Create new database instance: %d, '%s'", this.peer.getId(), this.name)); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
77 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
78 else { |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
79 this.peer = types.get(0); |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
80 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
81 return this.peer; |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
82 } |
50416a0df385
Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents:
diff
changeset
|
83 } |