diff 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
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/importer/ImporterSession.java	Thu Jul 10 12:04:56 2014 +0200
+++ b/backend/src/main/java/org/dive4elements/river/importer/ImporterSession.java	Thu Jul 10 16:11:55 2014 +0200
@@ -8,28 +8,25 @@
 
 package org.dive4elements.river.importer;
 
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.TreeMap;
-
 import java.math.BigDecimal;
 
 import org.hibernate.SessionFactory;
 import org.hibernate.Session;
 import org.hibernate.Query;
 import org.hibernate.FlushMode;
-
 import org.dive4elements.river.backend.SessionFactoryProvider;
-
+import org.dive4elements.river.model.GrainFraction;
 import org.dive4elements.river.model.WstColumnValue;
 import org.dive4elements.river.model.WstColumn;
 import org.dive4elements.river.model.DischargeTableValue;
 import org.dive4elements.river.model.DischargeTable;
 import org.dive4elements.river.model.Range;
 import org.dive4elements.river.model.River;
-
 import org.apache.log4j.Logger;
-
 import org.dive4elements.artifacts.common.utils.LRUCache;
 
 public class ImporterSession
@@ -55,6 +52,8 @@
     protected LRUCache<Integer, Map<ValueKey, Range>>
         ranges;
 
+    private Map<String, GrainFraction> grainFractions;
+
     public static ImporterSession getInstance() {
         return SESSION.get();
     }
@@ -157,6 +156,18 @@
         return dctv;
     }
 
+    public GrainFraction getGrainFraction(String name) {
+        if (grainFractions == null) {
+            grainFractions = new HashMap<String, GrainFraction>();
+            Query query = databaseSession.createQuery("from GrainFraction");
+            for (Iterator iter = query.iterate(); iter.hasNext();) {
+                GrainFraction gf = (GrainFraction)iter.next();
+                grainFractions.put(gf.getName(), gf);
+            }
+        }
+        return grainFractions.get(name);
+    }
+
     public Range getRange(River river, BigDecimal a, BigDecimal b) {
         Integer r = river.getId();
 

http://dive4elements.wald.intevation.org