comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportRange.java @ 188:003ac16812dd

Store annotations in backend. flys-backend/trunk@1518 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 18 Mar 2011 12:10:33 +0000
parents cf8cbcb6a10d
children bc3747a371cc
comparison
equal deleted inserted replaced
187:ecf90018563b 188:003ac16812dd
1 package de.intevation.flys.importer; 1 package de.intevation.flys.importer;
2
3 import de.intevation.flys.model.Range;
4 import de.intevation.flys.model.River;
5
6 import org.hibernate.Session;
7 import org.hibernate.Query;
8
9 import java.util.List;
10
11 import java.math.BigDecimal;
12
13 import org.apache.log4j.Logger;
2 14
3 public class ImportRange 15 public class ImportRange
4 implements Comparable<ImportRange> 16 implements Comparable<ImportRange>
5 { 17 {
6 public Double from; 18 private static Logger log = Logger.getLogger(ImportRange.class);
7 public Double to; 19
20 protected Double from;
21 protected Double to;
22
23 protected Range peer;
8 24
9 public ImportRange() { 25 public ImportRange() {
10 } 26 }
11 27
12 public ImportRange(Double from, Double to) { 28 public ImportRange(Double from, Double to) {
46 } 62 }
47 63
48 public void setTo(Double to) { 64 public void setTo(Double to) {
49 this.to = to; 65 this.to = to;
50 } 66 }
67
68 public Range getPeer(River river) {
69 if (peer == null) {
70 Session session = Importer.sessionHolder.get();
71 Query query = session.createQuery(
72 "from Range where a=:a and b=:b and river.id=:river");
73 BigDecimal a = from != null ? BigDecimal.valueOf(from) : null;
74 BigDecimal b = to != null ? BigDecimal.valueOf(to) : null;
75 query.setParameter("a", a);
76 query.setParameter("b", b);
77 query.setParameter("river", river.getId());
78 List<Range> ranges = query.list();
79 if (ranges.isEmpty()) {
80 peer = new Range(a, b, river);
81 session.save(peer);
82 }
83 else {
84 peer = ranges.get(0);
85 }
86 }
87 return peer;
88 }
51 } 89 }
52 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 90 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org