comparison backend/src/main/java/org/dive4elements/river/importer/ImporterSession.java @ 8027:1e327d86c898

Load grain fractions from database only. Do not store new ones.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 10 Jul 2014 16:11:55 +0200
parents 4c3ccf2b0304
children cdb9f6d97f6a
comparison
equal deleted inserted replaced
8026:4b3054edbbaf 8027:1e327d86c898
6 * documentation coming with Dive4Elements River for details. 6 * documentation coming with Dive4Elements River for details.
7 */ 7 */
8 8
9 package org.dive4elements.river.importer; 9 package org.dive4elements.river.importer;
10 10
11 import java.util.HashMap;
11 import java.util.Iterator; 12 import java.util.Iterator;
12 import java.util.Map; 13 import java.util.Map;
13 import java.util.TreeMap; 14 import java.util.TreeMap;
14
15 import java.math.BigDecimal; 15 import java.math.BigDecimal;
16 16
17 import org.hibernate.SessionFactory; 17 import org.hibernate.SessionFactory;
18 import org.hibernate.Session; 18 import org.hibernate.Session;
19 import org.hibernate.Query; 19 import org.hibernate.Query;
20 import org.hibernate.FlushMode; 20 import org.hibernate.FlushMode;
21
22 import org.dive4elements.river.backend.SessionFactoryProvider; 21 import org.dive4elements.river.backend.SessionFactoryProvider;
23 22 import org.dive4elements.river.model.GrainFraction;
24 import org.dive4elements.river.model.WstColumnValue; 23 import org.dive4elements.river.model.WstColumnValue;
25 import org.dive4elements.river.model.WstColumn; 24 import org.dive4elements.river.model.WstColumn;
26 import org.dive4elements.river.model.DischargeTableValue; 25 import org.dive4elements.river.model.DischargeTableValue;
27 import org.dive4elements.river.model.DischargeTable; 26 import org.dive4elements.river.model.DischargeTable;
28 import org.dive4elements.river.model.Range; 27 import org.dive4elements.river.model.Range;
29 import org.dive4elements.river.model.River; 28 import org.dive4elements.river.model.River;
30
31 import org.apache.log4j.Logger; 29 import org.apache.log4j.Logger;
32
33 import org.dive4elements.artifacts.common.utils.LRUCache; 30 import org.dive4elements.artifacts.common.utils.LRUCache;
34 31
35 public class ImporterSession 32 public class ImporterSession
36 { 33 {
37 private static Logger log = Logger.getLogger(ImporterSession.class); 34 private static Logger log = Logger.getLogger(ImporterSession.class);
52 protected LRUCache<Integer, Map<ValueKey, DischargeTableValue>> 49 protected LRUCache<Integer, Map<ValueKey, DischargeTableValue>>
53 dischargeTableValues; 50 dischargeTableValues;
54 51
55 protected LRUCache<Integer, Map<ValueKey, Range>> 52 protected LRUCache<Integer, Map<ValueKey, Range>>
56 ranges; 53 ranges;
54
55 private Map<String, GrainFraction> grainFractions;
57 56
58 public static ImporterSession getInstance() { 57 public static ImporterSession getInstance() {
59 return SESSION.get(); 58 return SESSION.get();
60 } 59 }
61 60
155 map.put(key, dctv); 154 map.put(key, dctv);
156 155
157 return dctv; 156 return dctv;
158 } 157 }
159 158
159 public GrainFraction getGrainFraction(String name) {
160 if (grainFractions == null) {
161 grainFractions = new HashMap<String, GrainFraction>();
162 Query query = databaseSession.createQuery("from GrainFraction");
163 for (Iterator iter = query.iterate(); iter.hasNext();) {
164 GrainFraction gf = (GrainFraction)iter.next();
165 grainFractions.put(gf.getName(), gf);
166 }
167 }
168 return grainFractions.get(name);
169 }
170
160 public Range getRange(River river, BigDecimal a, BigDecimal b) { 171 public Range getRange(River river, BigDecimal a, BigDecimal b) {
161 Integer r = river.getId(); 172 Integer r = river.getId();
162 173
163 Map<ValueKey, Range> map = ranges.get(r); 174 Map<ValueKey, Range> map = ranges.get(r);
164 175

http://dive4elements.wald.intevation.org