diff backend/src/main/java/org/dive4elements/river/model/RiverAxis.java @ 8747:e9d912c97fa8

We expect that every river has only one RiverAxis of kind 1 This allowed to reduce code duplication and some cleanups.
author Tom Gottfried <tom@intevation.de>
date Fri, 05 Jun 2015 16:56:47 +0200
parents 4c3ccf2b0304
children 5e38e2924c07
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/model/RiverAxis.java	Fri Jun 05 16:53:07 2015 +0200
+++ b/backend/src/main/java/org/dive4elements/river/model/RiverAxis.java	Fri Jun 05 16:56:47 2015 +0200
@@ -29,6 +29,8 @@
 
 import org.hibernate.annotations.Type;
 
+import org.apache.log4j.Logger;
+
 /**
  * A river has one axis that is used for calculation.
  * Additional axes of a river can be used to be painted int maps etc.
@@ -39,6 +41,8 @@
 public class RiverAxis
 implements   Serializable
 {
+    private static Logger log = Logger.getLogger(RiverAxis.class);
+
     private Integer    id;
     private AxisKind   kind;
     private River      river;
@@ -119,11 +123,6 @@
     }
 
 
-    public static List<RiverAxis> getRiverAxis(String river)
-    throws IllegalArgumentException {
-        return getRiverAxis(river, KIND_CURRENT);
-    }
-
     public static List<RiverAxis> getRiverAxis(String river, String name, int kind)
     throws HibernateException {
         Session session = SessionHolder.HOLDER.get();
@@ -139,16 +138,23 @@
         return list.isEmpty() ? null : list;
     }
 
-    public static List<RiverAxis> getRiverAxis(String river, int kind)
+    public static RiverAxis getRiverAxis(String river)
     throws HibernateException {
         Session session = SessionHolder.HOLDER.get();
         Query query = session.createQuery(
             "from RiverAxis where river.name =:river AND kind.id =:kind");
         query.setParameter("river", river);
-        query.setParameter("kind", kind);
+        query.setParameter("kind", KIND_CURRENT);
 
         List<RiverAxis> list = query.list();
-        return list.isEmpty() ? null : list;
+
+        /* We expect that every river has only one RiverAxis of kind 1
+           thow this is not currently enforced in database schema. */
+        if (list.size() > 1) {
+            log.error("River " + river + " has more than one current axis.");
+        }
+
+        return list.isEmpty() ? null : list.get(0);
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org