diff artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/CalculationSelectSinfo.java @ 9191:f692f5a0536a

sinfo.collisions review
author gernotbelger
date Thu, 28 Jun 2018 15:57:40 +0200
parents e3519c3e7a0a
children
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/CalculationSelectSinfo.java	Thu Jun 28 15:10:04 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/CalculationSelectSinfo.java	Thu Jun 28 15:57:40 2018 +0200
@@ -11,14 +11,18 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 import org.apache.log4j.Logger;
 import org.dive4elements.artifacts.Artifact;
 import org.dive4elements.artifacts.CallContext;
 import org.dive4elements.artifacts.CallMeta;
 import org.dive4elements.artifacts.common.utils.XMLUtils;
+import org.dive4elements.river.artifacts.model.CollisionHibernateFactory;
 import org.dive4elements.river.artifacts.resources.Resources;
+import org.dive4elements.river.artifacts.sinfo.collision.CollisionAccess;
 import org.dive4elements.river.artifacts.states.DefaultState;
+import org.dive4elements.river.model.sinfo.Collision;
 import org.w3c.dom.Element;
 
 /**
@@ -55,7 +59,19 @@
 
         final SINFOArtifact sinfo = (SINFOArtifact) artifact;
         /* throws an exception if calculation mode is invalid */
-        sinfo.getCalculationMode();
+        final String calcmode = sinfo.getCalculationMode().toString(); // "toString()" is important
+        if (calcmode.equals("sinfo_calc_collision")) {
+
+            final CollisionAccess access = new CollisionAccess((SINFOArtifact) artifact);
+
+            final List<Collision> list = CollisionHibernateFactory.getCollisionsByRiver(access.getRiver());
+
+            if (list.size() == 0) {
+                throw new IllegalArgumentException("error_no_data_for_river");
+            }
+        }
+
         return true;
     }
+
 }
\ No newline at end of file

http://dive4elements.wald.intevation.org