diff gwt-client/src/main/java/org/dive4elements/river/client/server/DynamicMainValuesTimeRangeDeterminationServiceImpl.java @ 9412:0fb76f2d4e5b

bundu wst time range globalErrorMsg to client - no error thrown
author gernotbelger
date Thu, 16 Aug 2018 11:40:28 +0200
parents bc9a45d2b1fa
children
line wrap: on
line diff
--- a/gwt-client/src/main/java/org/dive4elements/river/client/server/DynamicMainValuesTimeRangeDeterminationServiceImpl.java	Thu Aug 16 10:04:54 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/server/DynamicMainValuesTimeRangeDeterminationServiceImpl.java	Thu Aug 16 11:40:28 2018 +0200
@@ -20,7 +20,8 @@
 import org.dive4elements.river.client.client.services.DynamicMainValuesTimeRangeDeterminationService;
 import org.dive4elements.river.client.shared.exceptions.ServerException;
 import org.dive4elements.river.client.shared.model.GaugeInfoObject;
-import org.dive4elements.river.client.shared.model.GaugeInfoObjectImpl;
+import org.dive4elements.river.client.shared.model.GaugeInfoResult;
+import org.dive4elements.river.client.shared.model.GaugeInfoResultImpl;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
@@ -36,19 +37,14 @@
     private static final String XPATH_ROOT = "dynamic-mainvalues-input";
     private String globalErrorMsg = null;
 
-    private GaugeInfoObject[] callService(final String serviceName, final Document input, final String locale) throws ServerException {
+    private GaugeInfoResult callService(final String serviceName, final Document input, final String locale) throws ServerException {
         final String url = getServletContext().getInitParameter("server-url");
 
         final HttpClient client = new HttpClientImpl(url, locale);
 
         try {
             final Document result = client.callService(url, serviceName, input);
-            final GaugeInfoObject[] objects = extractDates(result);
-            if (!this.globalErrorMsg.equals(""))
-                throw new ServerException(this.globalErrorMsg);
-            // log.debug("Extract wq info objects now.");
-            return objects;
-
+            return extractDates(result);
         }
         catch (final ConnectionException ce) {
             // log.error(ce, ce);
@@ -57,9 +53,10 @@
         throw new ServerException("error_no_wqinput_found");
     }
 
-    private GaugeInfoObject[] extractDates(final Document result) throws ServerException {
+    private GaugeInfoResult extractDates(final Document result) throws ServerException {
         final List<GaugeInfoObject> results = new ArrayList<GaugeInfoObject>();
         final NodeList list = result.getChildNodes();
+        final List<GaugeInfoObject> gauges = new ArrayList<GaugeInfoObject>();
 
         if (list != null && list.getLength() == 1) {
             // log.warn("No wq info found.");
@@ -74,13 +71,16 @@
                     final NamedNodeMap map = node.getAttributes();
                     final String gaugeName = getStringFromMap("name", map);
                     final String error = getStringFromMap("error-message", map);
-                    final GaugeInfoObject gi = new GaugeInfoObjectImpl(gaugeName, error, getDateFromMap("date-from", map), getDateFromMap("date-to", map));
-                    results.add(gi);
+                    final GaugeInfoObject gi = new GaugeInfoObject(gaugeName, error, getDateFromMap("date-from", map), getDateFromMap("date-to", map));
+                    // results.add(gi);
+                    gauges.add(gi);
                 }
             }
 
         }
-        return results.toArray(new GaugeInfoObject[results.size()]);
+
+        return new GaugeInfoResultImpl(this.globalErrorMsg, gauges.toArray(new GaugeInfoObject[gauges.size()]));
+
     }
 
     private Date getDateFromMap(final String attrName, final NamedNodeMap map) {
@@ -98,7 +98,7 @@
     }
 
     @Override
-    public GaugeInfoObject[] getGaugeInfo(final String locale, final String river, final String[] gauges, final int startYear, final int endYear)
+    public GaugeInfoResult getGaugeInfo(final String locale, final String river, final String[] gauges, final int startYear, final int endYear)
             throws ServerException {
 
         final Document input = createInput(river, gauges, startYear, endYear);

http://dive4elements.wald.intevation.org