[Dive4elements-commits] [PATCH 1 of 8] Convert GaugeOverviewInfoService into RiverInfoService
Wald Commits
scm-commit at wald.intevation.org
Wed Oct 24 17:09:21 CEST 2012
# HG changeset patch
# User Björn Ricks <bjoern.ricks at intevation.de>
# Date 1351086641 -7200
# Node ID e68a710d96523cc6938d3275187f5f35e55a0d88
# Parent 448cbd8708d59d77226b00248cdbd2009c29341e
Convert GaugeOverviewInfoService into RiverInfoService
The service will be reused for the MeasurementStation info too and it returns a
RiverInfo in both cases. Therefore rename the current GaugeOverviewInfoService
into RiverInfoService.
diff -r 448cbd8708d5 -r e68a710d9652 flys-client/src/main/java/de/intevation/flys/client/client/services/GaugeOverviewInfoService.java
--- a/flys-client/src/main/java/de/intevation/flys/client/client/services/GaugeOverviewInfoService.java Wed Oct 24 14:44:12 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-package de.intevation.flys.client.client.services;
-
-import com.google.gwt.user.client.rpc.RemoteService;
-import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
-
-import de.intevation.flys.client.shared.exceptions.ServerException;
-import de.intevation.flys.client.shared.model.RiverInfo;
-
-/**
- * @author <a href="mailto:bjoern.ricks at intevation.de">Björn Ricks</a>
- */
- at RemoteServiceRelativePath("gaugeoverviewinfo")
-public interface GaugeOverviewInfoService extends RemoteService {
-
- public RiverInfo getRiverInfo(String river) throws ServerException;
-
-}
diff -r 448cbd8708d5 -r e68a710d9652 flys-client/src/main/java/de/intevation/flys/client/client/services/GaugeOverviewInfoServiceAsync.java
--- a/flys-client/src/main/java/de/intevation/flys/client/client/services/GaugeOverviewInfoServiceAsync.java Wed Oct 24 14:44:12 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-package de.intevation.flys.client.client.services;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-import de.intevation.flys.client.shared.model.RiverInfo;
-
-
-/**
- * @author <a href="mailto:bjoern.ricks at intevation.de">Björn Ricks</a>
- */
-public interface GaugeOverviewInfoServiceAsync {
-
- public void getRiverInfo(String river, AsyncCallback<RiverInfo> callback);
-}
-
-// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 tw=80 :
diff -r 448cbd8708d5 -r e68a710d9652 flys-client/src/main/java/de/intevation/flys/client/client/services/RiverInfoService.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/services/RiverInfoService.java Wed Oct 24 15:50:41 2012 +0200
@@ -0,0 +1,21 @@
+package de.intevation.flys.client.client.services;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
+
+import de.intevation.flys.client.shared.exceptions.ServerException;
+import de.intevation.flys.client.shared.model.RiverInfo;
+
+/**
+ * @author <a href="mailto:bjoern.ricks at intevation.de">Björn Ricks</a>
+ */
+ at RemoteServiceRelativePath("riverinfo")
+public interface RiverInfoService extends RemoteService {
+
+ /**
+ * Returns a RiverInfo object with GaugeInfos
+ */
+ public RiverInfo getGauges(String river)
+ throws ServerException;
+
+}
diff -r 448cbd8708d5 -r e68a710d9652 flys-client/src/main/java/de/intevation/flys/client/client/services/RiverInfoServiceAsync.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/services/RiverInfoServiceAsync.java Wed Oct 24 15:50:41 2012 +0200
@@ -0,0 +1,16 @@
+package de.intevation.flys.client.client.services;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+import de.intevation.flys.client.shared.model.RiverInfo;
+
+
+/**
+ * @author <a href="mailto:bjoern.ricks at intevation.de">Björn Ricks</a>
+ */
+public interface RiverInfoServiceAsync {
+
+ public void getGauges(String river, AsyncCallback<RiverInfo> callback);
+}
+
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 tw=80 :
diff -r 448cbd8708d5 -r e68a710d9652 flys-client/src/main/java/de/intevation/flys/client/client/ui/GaugePanel.java
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/GaugePanel.java Wed Oct 24 14:44:12 2012 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/GaugePanel.java Wed Oct 24 15:50:41 2012 +0200
@@ -16,8 +16,8 @@
import de.intevation.flys.client.client.FLYS;
import de.intevation.flys.client.client.FLYSConstants;
-import de.intevation.flys.client.client.services.GaugeOverviewInfoService;
-import de.intevation.flys.client.client.services.GaugeOverviewInfoServiceAsync;
+import de.intevation.flys.client.client.services.RiverInfoService;
+import de.intevation.flys.client.client.services.RiverInfoServiceAsync;
import de.intevation.flys.client.shared.model.DataList;
import de.intevation.flys.client.shared.model.RiverInfo;
@@ -39,8 +39,8 @@
/** The message class that provides i18n strings.*/
protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
- protected GaugeOverviewInfoServiceAsync gaugeOverviewInfoService =
- GWT.create(GaugeOverviewInfoService.class);
+ protected RiverInfoServiceAsync riverInfoService =
+ GWT.create(RiverInfoService.class);
protected GaugeTree gaugetree;
protected Canvas gaugetreecanvas;
@@ -88,7 +88,7 @@
* Loads the river info and renders it afterwards
*/
public void refresh() {
- gaugeOverviewInfoService.getRiverInfo(this.river, new AsyncCallback<RiverInfo>() {
+ riverInfoService.getGauges(this.river, new AsyncCallback<RiverInfo>() {
@Override
public void onFailure(Throwable e) {
GWT.log("Could not load the river info." + e);
diff -r 448cbd8708d5 -r e68a710d9652 flys-client/src/main/java/de/intevation/flys/client/server/GaugeOverviewInfoServiceImpl.java
--- a/flys-client/src/main/java/de/intevation/flys/client/server/GaugeOverviewInfoServiceImpl.java Wed Oct 24 14:44:12 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,207 +0,0 @@
-package de.intevation.flys.client.server;
-
-import java.util.ArrayList;
-import javax.xml.xpath.XPathConstants;
-
-import org.apache.log4j.Logger;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-
-import de.intevation.artifacts.common.ArtifactNamespaceContext;
-import de.intevation.artifacts.common.utils.XMLUtils;
-import de.intevation.artifacts.httpclient.exceptions.ConnectionException;
-import de.intevation.artifacts.httpclient.http.HttpClient;
-import de.intevation.artifacts.httpclient.http.HttpClientImpl;
-
-import de.intevation.flys.client.client.services.GaugeOverviewInfoService;
-import de.intevation.flys.client.shared.exceptions.ServerException;
-import de.intevation.flys.client.shared.model.DefaultGaugeInfo;
-import de.intevation.flys.client.shared.model.DefaultRiverInfo;
-import de.intevation.flys.client.shared.model.GaugeInfo;
-import de.intevation.flys.client.shared.model.RiverInfo;
-
-/**
- * @author <a href="mailto:bjoern.ricks at intevation.de">Björn Ricks</a>
- */
-public class GaugeOverviewInfoServiceImpl
-extends RemoteServiceServlet
-implements GaugeOverviewInfoService
-{
- private static final Logger logger =
- Logger.getLogger(GaugeOverviewInfoServiceImpl.class);
-
- public static final String ERROR_NO_RIVERINFO_FOUND =
- "error_no_gaugeoverviewinfo_found";
-
- private static final String XPATH_RIVER = "/art:gauge-info/art:river";
-
- private static final String XPATH_GAUGES = "/art:gauge-info/art:gauges/art:gauge";
-
- public RiverInfo getRiverInfo(String river) throws ServerException {
- logger.info("RiverInfoServiceImpl.getRiverInfo");
-
- String url = getServletContext().getInitParameter("server-url");
-
- Document doc = XMLUtils.newDocument();
-
- XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator(
- doc,
- ArtifactNamespaceContext.NAMESPACE_URI,
- ArtifactNamespaceContext.NAMESPACE_PREFIX);
-
- Element riverele = ec.create("river");
- riverele.setTextContent(river);
-
- doc.appendChild(riverele);
-
- HttpClient client = new HttpClientImpl(url);
-
- try {
- Document result = client.callService(url, "gaugeoverviewinfo", doc);
-
- Element riverresp = (Element) XMLUtils.xpath(
- result,
- XPATH_RIVER,
- XPathConstants.NODE,
- ArtifactNamespaceContext.INSTANCE);
-
- String rname = riverresp.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "name");
- String rkmup = riverresp.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "kmup");
- String rstart = riverresp.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "start");
- String rend = riverresp.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "end");
- String rwstunit = riverresp.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "wstunit");
- String rminq = riverresp.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "minq");
- String rmaxq = riverresp.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "maxq");
- String rofficial = riverresp.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "official");
-
- logger.debug("River is " + rname);
-
- boolean kmup = rkmup.equalsIgnoreCase("true");
-
- NodeList gaugenodes = (NodeList) XMLUtils.xpath(
- result,
- XPATH_GAUGES,
- XPathConstants.NODESET,
- ArtifactNamespaceContext.INSTANCE);
-
- int num = gaugenodes == null ? 0 : gaugenodes.getLength();
-
- ArrayList<GaugeInfo> gauges = new ArrayList<GaugeInfo>(num);
-
- if (num == 0) {
- logger.warn("No gauge info found.");
- }
- else {
- logger.debug("Found " + num + " gauges.");
-
- for (int i = 0; i < num; i++) {
- Element gaugeele = (Element)gaugenodes.item(i);
-
- String gname = gaugeele.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "name");
- String gstart = gaugeele.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "start");
- String gend = gaugeele.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "end");
- String gdatum = gaugeele.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "datum");
- String gaeo = gaugeele.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "aeo");
- String gminq = gaugeele.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "minq");
- String gminw = gaugeele.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "minw");
- String gmaxq = gaugeele.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "maxq");
- String gmaxw = gaugeele.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "maxw");
- String gstation = gaugeele.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "station");
- String gofficial = gaugeele.getAttributeNS(
- ArtifactNamespaceContext.NAMESPACE_URI, "official");
-
- logger.debug("Found gauge with name " + gname);
-
- GaugeInfo gaugeinfo = new DefaultGaugeInfo(
- rname,
- gname,
- kmup,
- parseDouble(gstation),
- parseDouble(gstart),
- parseDouble(gend),
- parseDouble(gdatum),
- parseDouble(gaeo),
- parseDouble(gminq),
- parseDouble(gmaxq),
- parseDouble(gminw),
- parseDouble(gmaxw),
- rwstunit,
- parseLong(gofficial)
- );
-
- gauges.add(gaugeinfo);
- }
- }
-
- RiverInfo riverinfo = new DefaultRiverInfo(
- rname,
- kmup,
- parseDouble(rstart),
- parseDouble(rend),
- rwstunit,
- parseDouble(rminq),
- parseDouble(rmaxq),
- parseLong(rofficial),
- gauges);
-
- logger.debug("Finished RiverInfoService.");
-
- return riverinfo;
- }
- catch (ConnectionException ce) {
- logger.error(ce, ce);
- }
-
- logger.warn("No gauge found");
- throw new ServerException(ERROR_NO_RIVERINFO_FOUND);
- }
-
- /**
- * Avoids NullPointerException when parsing double value
- */
- private Double parseDouble(String value) {
- if (value == null || value.isEmpty()) {
- return null;
- }
- try {
- return Double.valueOf(value);
- }
- catch(NumberFormatException e) {
- logger.error(e, e);
- return null;
- }
- }
-
- private Long parseLong(String value) {
- if (value == null || value.isEmpty()) {
- return null;
- }
- try {
- return Long.valueOf(value);
- }
- catch(NumberFormatException e) {
- logger.error(e, e);
- return null;
- }
- }
-}
diff -r 448cbd8708d5 -r e68a710d9652 flys-client/src/main/java/de/intevation/flys/client/server/RiverInfoServiceImpl.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/server/RiverInfoServiceImpl.java Wed Oct 24 15:50:41 2012 +0200
@@ -0,0 +1,208 @@
+package de.intevation.flys.client.server;
+
+import java.util.ArrayList;
+import javax.xml.xpath.XPathConstants;
+
+import org.apache.log4j.Logger;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+import de.intevation.artifacts.common.ArtifactNamespaceContext;
+import de.intevation.artifacts.common.utils.XMLUtils;
+import de.intevation.artifacts.httpclient.exceptions.ConnectionException;
+import de.intevation.artifacts.httpclient.http.HttpClient;
+import de.intevation.artifacts.httpclient.http.HttpClientImpl;
+
+import de.intevation.flys.client.client.services.RiverInfoService;
+import de.intevation.flys.client.shared.exceptions.ServerException;
+import de.intevation.flys.client.shared.model.DefaultGaugeInfo;
+import de.intevation.flys.client.shared.model.DefaultRiverInfo;
+import de.intevation.flys.client.shared.model.GaugeInfo;
+import de.intevation.flys.client.shared.model.RiverInfo;
+
+/**
+ * @author <a href="mailto:bjoern.ricks at intevation.de">Björn Ricks</a>
+ */
+public class RiverInfoServiceImpl
+extends RemoteServiceServlet
+implements RiverInfoService
+{
+ private static final Logger logger =
+ Logger.getLogger(RiverInfoServiceImpl.class);
+
+ public static final String ERROR_NO_RIVERINFO_FOUND =
+ "error_no_gaugeoverviewinfo_found";
+
+ private static final String XPATH_RIVER = "/art:gauge-info/art:river";
+
+ private static final String XPATH_GAUGES = "/art:gauge-info/art:gauges/art:gauge";
+
+ public RiverInfo getGauges(String river) throws ServerException {
+ logger.info("RiverInfoServiceImpl.getRiverInfo");
+
+ String url = getServletContext().getInitParameter("server-url");
+
+ Document doc = XMLUtils.newDocument();
+
+ XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator(
+ doc,
+ ArtifactNamespaceContext.NAMESPACE_URI,
+ ArtifactNamespaceContext.NAMESPACE_PREFIX);
+
+ Element riverele = ec.create("river");
+ riverele.setTextContent(river);
+
+ doc.appendChild(riverele);
+
+ HttpClient client = new HttpClientImpl(url);
+
+ try {
+ Document result = client.callService(url, "gaugeoverviewinfo", doc);
+
+ Element riverresp = (Element) XMLUtils.xpath(
+ result,
+ XPATH_RIVER,
+ XPathConstants.NODE,
+ ArtifactNamespaceContext.INSTANCE);
+
+ String rname = riverresp.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "name");
+ String rkmup = riverresp.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "kmup");
+ String rstart = riverresp.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "start");
+ String rend = riverresp.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "end");
+ String rwstunit = riverresp.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "wstunit");
+ String rminq = riverresp.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "minq");
+ String rmaxq = riverresp.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "maxq");
+ String rofficial = riverresp.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "official");
+
+ logger.debug("River is " + rname);
+
+ boolean kmup = rkmup.equalsIgnoreCase("true");
+
+ NodeList gaugenodes = (NodeList) XMLUtils.xpath(
+ result,
+ XPATH_GAUGES,
+ XPathConstants.NODESET,
+ ArtifactNamespaceContext.INSTANCE);
+
+ int num = gaugenodes == null ? 0 : gaugenodes.getLength();
+
+ ArrayList<GaugeInfo> gauges = new ArrayList<GaugeInfo>(num);
+
+ if (num == 0) {
+ logger.warn("No gauge info found.");
+ }
+ else {
+ logger.debug("Found " + num + " gauges.");
+
+ for (int i = 0; i < num; i++) {
+ Element gaugeele = (Element)gaugenodes.item(i);
+
+ String gname = gaugeele.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "name");
+ String gstart = gaugeele.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "start");
+ String gend = gaugeele.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "end");
+ String gdatum = gaugeele.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "datum");
+ String gaeo = gaugeele.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "aeo");
+ String gminq = gaugeele.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "minq");
+ String gminw = gaugeele.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "minw");
+ String gmaxq = gaugeele.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "maxq");
+ String gmaxw = gaugeele.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "maxw");
+ String gstation = gaugeele.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "station");
+ String gofficial = gaugeele.getAttributeNS(
+ ArtifactNamespaceContext.NAMESPACE_URI, "official");
+
+ logger.debug("Found gauge with name " + gname);
+
+ GaugeInfo gaugeinfo = new DefaultGaugeInfo(
+ rname,
+ gname,
+ kmup,
+ parseDouble(gstation),
+ parseDouble(gstart),
+ parseDouble(gend),
+ parseDouble(gdatum),
+ parseDouble(gaeo),
+ parseDouble(gminq),
+ parseDouble(gmaxq),
+ parseDouble(gminw),
+ parseDouble(gmaxw),
+ rwstunit,
+ parseLong(gofficial)
+ );
+
+ gauges.add(gaugeinfo);
+ }
+ }
+
+ DefaultRiverInfo riverinfo = new DefaultRiverInfo(
+ rname,
+ kmup,
+ parseDouble(rstart),
+ parseDouble(rend),
+ rwstunit,
+ parseDouble(rminq),
+ parseDouble(rmaxq),
+ parseLong(rofficial)
+ );
+ riverinfo.setGauges(gauges);
+
+ logger.debug("Finished RiverInfoService.");
+
+ return riverinfo;
+ }
+ catch (ConnectionException ce) {
+ logger.error(ce, ce);
+ }
+
+ logger.warn("No gauge found");
+ throw new ServerException(ERROR_NO_RIVERINFO_FOUND);
+ }
+
+ /**
+ * Avoids NullPointerException when parsing double value
+ */
+ private Double parseDouble(String value) {
+ if (value == null || value.isEmpty()) {
+ return null;
+ }
+ try {
+ return Double.valueOf(value);
+ }
+ catch(NumberFormatException e) {
+ logger.error(e, e);
+ return null;
+ }
+ }
+
+ private Long parseLong(String value) {
+ if (value == null || value.isEmpty()) {
+ return null;
+ }
+ try {
+ return Long.valueOf(value);
+ }
+ catch(NumberFormatException e) {
+ logger.error(e, e);
+ return null;
+ }
+ }
+}
More information about the Dive4elements-commits
mailing list