Mercurial > dive4elements > river
comparison backend/src/main/java/org/dive4elements/river/importer/sinfo/importitem/FlowDepthColumnSeriesImport.java @ 9656:31549fdfaf4f
Importer (s/u-info) extensions: flow-depth: uniform formatting of from-to series names,
warning instead of cancelling in case of missing column values,
detecting, logging and skipping columns with wrong unit,
better counting of inserted/updated values for each column
author | mschaefer |
---|---|
date | Mon, 23 Mar 2020 15:21:39 +0100 |
parents | 50416a0df385 |
children |
comparison
equal
deleted
inserted
replaced
9655:1f57381b3bb5 | 9656:31549fdfaf4f |
---|---|
16 import org.apache.log4j.Logger; | 16 import org.apache.log4j.Logger; |
17 import org.dive4elements.river.importer.common.AbstractSeriesImport; | 17 import org.dive4elements.river.importer.common.AbstractSeriesImport; |
18 import org.dive4elements.river.model.River; | 18 import org.dive4elements.river.model.River; |
19 import org.dive4elements.river.model.sinfo.FlowDepthColumn; | 19 import org.dive4elements.river.model.sinfo.FlowDepthColumn; |
20 import org.dive4elements.river.model.sinfo.FlowDepthValue; | 20 import org.dive4elements.river.model.sinfo.FlowDepthValue; |
21 import org.hibernate.SQLQuery; | 21 import org.hibernate.Query; |
22 import org.hibernate.Session; | 22 import org.hibernate.Session; |
23 | 23 |
24 /** | 24 /** |
25 * Imported flow depth data series of a river | 25 * Imported flow depth data series of a river |
26 * | 26 * |
53 } | 53 } |
54 | 54 |
55 public FlowDepthColumnSeriesImport(final String filename, final FlowDepthSeriesImport parent, final String colName, final File relativeFilePath) { | 55 public FlowDepthColumnSeriesImport(final String filename, final FlowDepthSeriesImport parent, final String colName, final File relativeFilePath) { |
56 super(filename); | 56 super(filename); |
57 this.parent = parent; | 57 this.parent = parent; |
58 this.colName = colName; | 58 final String[] items = (colName == null) ? new String[] {} : colName.split("\\-"); |
59 if (items.length == 2) | |
60 this.colName = items[0].trim() + " - " + items[1].trim(); | |
61 else | |
62 this.colName = colName; | |
59 this.relativeFilePath = relativeFilePath; | 63 this.relativeFilePath = relativeFilePath; |
60 } | 64 } |
61 | 65 |
62 | 66 |
63 /***** METHODS *****/ | 67 /***** METHODS *****/ |
89 @Override | 93 @Override |
90 public Logger getLog() { | 94 public Logger getLog() { |
91 return log; | 95 return log; |
92 } | 96 } |
93 | 97 |
94 @Override | 98 private List<FlowDepthColumn> querySeriesItem(final Session session, final River river) { |
95 public List<FlowDepthColumn> querySeriesItem(final Session session, final River river) { | 99 final Query query = session.createQuery("FROM FlowDepthColumn WHERE flowDepth=:parent AND lower(name)=:colname"); |
96 /* | 100 query.setParameter("parent", this.parent.getPeer(river)); |
97 * final Query query = session.createQuery("FROM FlowDepthColumn WHERE (FlowDepth=:parent) AND lower(name)=:colname"); | |
98 * query.setParameter("parent", this.parent.getPeer(river)); | |
99 * query.setParameter("colname", this.colName.toLowerCase()); | |
100 */ | |
101 // FIXME the normal query raises a null pointer exception | |
102 final SQLQuery query = session.createSQLQuery("SELECT * FROM flow_depth_column WHERE (flow_depth_id=:parent) AND (lower(name)=:colname)"); | |
103 query.setParameter("parent", this.parent.getPeer(river).getId()); | |
104 query.setParameter("colname", this.colName.toLowerCase()); | 101 query.setParameter("colname", this.colName.toLowerCase()); |
105 return query.list(); | 102 return query.list(); |
106 } | 103 } |
107 | 104 |
105 @Override | |
106 public List<FlowDepthColumn> querySeriesItem(final Session session, final River river, final boolean doQueryParent) { | |
107 final Query query = session.createQuery("FROM FlowDepthColumn c INNER JOIN c.flowDepth s" | |
108 + " WHERE s.river=:river AND lower(s.filename)=:filename AND lower(c.name)=:colname"); | |
109 query.setParameter("river", river); | |
110 query.setParameter("filename", this.filename.toLowerCase()); | |
111 query.setParameter("colname", this.colName.toLowerCase()); | |
112 return query.list(); | |
113 } | |
108 | 114 |
109 @Override | 115 @Override |
110 public FlowDepthColumn createSeriesItem(final River river) { | 116 public FlowDepthColumn createSeriesItem(final River river) { |
111 return new FlowDepthColumn(this.parent.getPeer(river), this.colName); | 117 return new FlowDepthColumn(this.parent.getPeer(river), this.colName); |
112 } | 118 } |