comparison flys-backend/src/main/java/org/dive4elements/river/importer/ImportTimeInterval.java @ 5828:dfb26b03b179

Moved directories to org.dive4elements.river
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 11:53:11 +0200
parents flys-backend/src/main/java/de/intevation/flys/importer/ImportTimeInterval.java@c24820c235d9
children 18619c1e7c2a
comparison
equal deleted inserted replaced
5827:e308d4ecd35a 5828:dfb26b03b179
1 package de.intevation.flys.importer;
2
3 import de.intevation.flys.model.TimeInterval;
4
5 import org.hibernate.Session;
6 import org.hibernate.Query;
7
8 import java.util.List;
9 import java.util.Date;
10
11 import org.apache.log4j.Logger;
12
13 public class ImportTimeInterval
14 {
15 private static Logger log = Logger.getLogger(ImportTimeInterval.class);
16
17 protected Date startTime;
18 protected Date stopTime;
19
20 protected TimeInterval peer;
21
22 public ImportTimeInterval() {
23 }
24
25 public ImportTimeInterval(Date startTime) {
26 this.startTime = startTime;
27 this.stopTime = null;
28 }
29
30 public ImportTimeInterval(Date startTime, Date stopTime) {
31 Date start;
32 Date stop;
33 if (startTime == null) {
34 start = stopTime;
35 stop = null;
36 }
37 else {
38 start = startTime;
39 stop = stopTime;
40 }
41
42 if (stop != null && start.after(stop)) {
43 this.stopTime = start;
44 this.startTime = stop;
45 }
46 else {
47 this.startTime = start;
48 this.stopTime = stop;
49 }
50 }
51
52 public Date getStartTime() {
53 return startTime;
54 }
55
56 public void setStartTime(Date startTime) {
57 this.startTime = startTime;
58 }
59
60 public Date getStopTime() {
61 return stopTime;
62 }
63
64 public void setStopTime(Date stopTime) {
65 this.stopTime = stopTime;
66 }
67
68 public TimeInterval getPeer() {
69 if (peer == null) {
70 Session session = ImporterSession.getInstance().getDatabaseSession();
71 if (startTime == null) {
72 log.error("Null Start time will be ignored.");
73 }
74 Query query;
75 if (stopTime == null) {
76 query = session.createQuery(
77 "from TimeInterval where startTime=:a and stopTime is null");
78 }
79 else {
80 query = session.createQuery(
81 "from TimeInterval where startTime=:a and stopTime=:b");
82 query.setParameter("b", stopTime);
83 }
84 query.setParameter("a", startTime);
85
86 List<TimeInterval> intervals = query.list();
87 if (intervals.isEmpty()) {
88 peer = new TimeInterval(startTime, stopTime);
89 session.save(peer);
90 }
91 else {
92 peer = intervals.get(0);
93 }
94 }
95 return peer;
96 }
97 }
98 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org