# HG changeset patch # User Sascha L. Teichmann # Date 1300703234 0 # Node ID f1fce41347eac18606f9aa23ddc4840a88b54364 # Parent c4fb5141ce114e331f6ea4f2a338832c0e34d770 Added missing ImportGauge.getPeer() method flys-backend/trunk@1530 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r c4fb5141ce11 -r f1fce41347ea flys-backend/ChangeLog --- a/flys-backend/ChangeLog Mon Mar 21 10:01:56 2011 +0000 +++ b/flys-backend/ChangeLog Mon Mar 21 10:27:14 2011 +0000 @@ -1,3 +1,14 @@ +2011-03-21 Sascha L. Teichmann + + * src/main/java/de/intevation/flys/model/Gauge.java: + Added convinience contructor. + + * src/main/java/de/intevation/flys/importer/ImportGauge.java: + Fixed getPeer() method. + + * src/main/java/de/intevation/flys/importer/StaFileParser.java: + Fixed parsing of STA files. + 2011-03-21 Sascha L. Teichmann * src/main/java/de/intevation/flys/importer/ImportRiver.java, diff -r c4fb5141ce11 -r f1fce41347ea flys-backend/src/main/java/de/intevation/flys/importer/ImportGauge.java --- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportGauge.java Mon Mar 21 10:01:56 2011 +0000 +++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportGauge.java Mon Mar 21 10:27:14 2011 +0000 @@ -2,11 +2,16 @@ import java.io.File; +import java.util.List; + import java.math.BigDecimal; import de.intevation.flys.model.River; import de.intevation.flys.model.Gauge; +import org.hibernate.Session; +import org.hibernate.Query; + import java.io.IOException; public class ImportGauge @@ -19,6 +24,7 @@ protected String name; protected BigDecimal aeo; protected BigDecimal datum; + protected BigDecimal station; protected Gauge peer; @@ -75,17 +81,43 @@ this.datum = datum; } + public BigDecimal getStation() { + return station; + } + + public void setStation(BigDecimal station) { + this.station = station; + } + public void parseDependencies() throws IOException { StaFileParser sfp = new StaFileParser(); sfp.parse(this); } public void storeDependencies(River river) { + Gauge gauge = getPeer(river); // TODO: Implement me! } public Gauge getPeer(River river) { if (peer == null) { + Session session = Importer.sessionHolder.get(); + Query query = session.createQuery( + "from Gauge where name=:name " + + "and river.id=:id"); + query.setString("name", name); + query.setInteger("id", river.getId()); + List gauges = query.list(); + if (gauges.isEmpty()) { + peer = new Gauge( + name, river, + station, aeo, datum, + range.getPeer(river)); + session.save(peer); + } + else { + peer = gauges.get(0); + } } return peer; } diff -r c4fb5141ce11 -r f1fce41347ea flys-backend/src/main/java/de/intevation/flys/importer/StaFileParser.java --- a/flys-backend/src/main/java/de/intevation/flys/importer/StaFileParser.java Mon Mar 21 10:01:56 2011 +0000 +++ b/flys-backend/src/main/java/de/intevation/flys/importer/StaFileParser.java Mon Mar 21 10:27:14 2011 +0000 @@ -80,7 +80,7 @@ } try { - gauge.setDatum( + gauge.setStation( new BigDecimal(line.substring(29, 36).trim())); } catch (NumberFormatException nfe) { diff -r c4fb5141ce11 -r f1fce41347ea flys-backend/src/main/java/de/intevation/flys/model/Gauge.java --- a/flys-backend/src/main/java/de/intevation/flys/model/Gauge.java Mon Mar 21 10:01:56 2011 +0000 +++ b/flys-backend/src/main/java/de/intevation/flys/model/Gauge.java Mon Mar 21 10:27:14 2011 +0000 @@ -30,6 +30,22 @@ public Gauge() { } + public Gauge( + String name, + River river, + BigDecimal station, + BigDecimal aeo, + BigDecimal datum, + Range range + ) { + this.name = name; + this.river = river; + this.station = station; + this.aeo = aeo; + this.datum = datum; + this.range = range; + } + @Id @SequenceGenerator( name = "SEQUENCE_GAUGES_ID_SEQ",