comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.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
5 import java.io.File; 5 import java.io.File;
6 import java.io.IOException; 6 import java.io.IOException;
7 7
8 import org.apache.log4j.Logger; 8 import org.apache.log4j.Logger;
9 9
10 import de.intevation.flys.model.River;
11
10 import de.intevation.flys.utils.FileTools; 12 import de.intevation.flys.utils.FileTools;
13
14 import org.hibernate.Session;
15 import org.hibernate.Query;
11 16
12 public class ImportRiver 17 public class ImportRiver
13 { 18 {
14 private static Logger log = Logger.getLogger(ImportRiver.class); 19 private static Logger log = Logger.getLogger(ImportRiver.class);
15 20
22 protected File bbInfoFile; 27 protected File bbInfoFile;
23 28
24 protected List<ImportGauge> gauges; 29 protected List<ImportGauge> gauges;
25 30
26 protected List<ImportAnnotation> annotations; 31 protected List<ImportAnnotation> annotations;
32
33 protected River peer;
27 34
28 public ImportRiver() { 35 public ImportRiver() {
29 } 36 }
30 37
31 public ImportRiver(String name, File wstFile, File bbInfoFile) { 38 public ImportRiver(String name, File wstFile, File bbInfoFile) {
83 AnnotationsParser aparser = new AnnotationsParser(); 90 AnnotationsParser aparser = new AnnotationsParser();
84 aparser.parse(riverDir); 91 aparser.parse(riverDir);
85 92
86 annotations = aparser.getAnnotations(); 93 annotations = aparser.getAnnotations();
87 } 94 }
95
96 public void storeAnnotations() {
97 River river = getPeer();
98 for (ImportAnnotation annotation: annotations) {
99 annotation.getPeer(river);
100 }
101 }
102
103 public River getPeer() {
104 if (peer == null) {
105 Session session = Importer.sessionHolder.get();
106 Query query = session.createQuery("from River where name=:name");
107 query.setString("name", name);
108 List<River> rivers = query.list();
109 if (rivers.isEmpty()) {
110 peer = new River(name);
111 session.save(peer);
112 }
113 else {
114 peer = rivers.get(0);
115 }
116 }
117 return peer;
118 }
88 } 119 }
89 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 120 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org