Mercurial > dive4elements > river
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 : |