Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/server/ArtifactHelper.java @ 3865:436eec3be6ff
Allow to create a discharge curve from a gauge info
This is only a draft yet.
flys-client/trunk@5639 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Bjoern Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Fri, 28 Sep 2012 08:57:48 +0000 |
parents | ab8eb2f544f2 |
children | b660090b417d |
comparison
equal
deleted
inserted
replaced
3864:c434dd2e84cf | 3865:436eec3be6ff |
---|---|
1 package de.intevation.flys.client.server; | 1 package de.intevation.flys.client.server; |
2 | 2 |
3 import org.w3c.dom.Document; | 3 import org.w3c.dom.Document; |
4 import org.w3c.dom.Element; | |
4 | 5 |
5 import org.apache.log4j.Logger; | 6 import org.apache.log4j.Logger; |
6 | 7 |
7 import java.util.ArrayList; | 8 import java.util.ArrayList; |
8 import java.util.List; | 9 import java.util.List; |
12 import de.intevation.artifacts.common.utils.CreationFilter; | 13 import de.intevation.artifacts.common.utils.CreationFilter; |
13 | 14 |
14 import de.intevation.artifacts.httpclient.exceptions.ConnectionException; | 15 import de.intevation.artifacts.httpclient.exceptions.ConnectionException; |
15 import de.intevation.artifacts.httpclient.http.HttpClient; | 16 import de.intevation.artifacts.httpclient.http.HttpClient; |
16 import de.intevation.artifacts.httpclient.http.HttpClientImpl; | 17 import de.intevation.artifacts.httpclient.http.HttpClientImpl; |
18 import de.intevation.artifacts.httpclient.utils.ArtifactNamespaceContext; | |
19 import de.intevation.artifacts.httpclient.utils.XMLUtils; | |
17 | 20 |
18 import de.intevation.flys.client.shared.exceptions.ServerException; | 21 import de.intevation.flys.client.shared.exceptions.ServerException; |
19 import de.intevation.flys.client.shared.model.Artifact; | 22 import de.intevation.flys.client.shared.model.Artifact; |
20 | 23 |
21 import de.intevation.flys.client.shared.model.Recommendation; | 24 import de.intevation.flys.client.shared.model.Recommendation; |
22 | |
23 | 25 |
24 /** | 26 /** |
25 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 27 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
26 */ | 28 */ |
27 public class ArtifactHelper { | 29 public class ArtifactHelper { |
30 | 32 |
31 | 33 |
32 /** The error message key that is thrown if an error occured while artifact | 34 /** The error message key that is thrown if an error occured while artifact |
33 * creation.*/ | 35 * creation.*/ |
34 public static final String ERROR_CREATE_ARTIFACT = "error_create_artifact"; | 36 public static final String ERROR_CREATE_ARTIFACT = "error_create_artifact"; |
37 | |
38 /** | |
39 * Name of the factory to generate a GaugeDischargeCurveArtifact | |
40 */ | |
41 private static final String GAUGE_DISCHARGE_CURVE_ARTIFACT = "gaugedischargecurve"; | |
35 | 42 |
36 | 43 |
37 private ArtifactHelper() { | 44 private ArtifactHelper() { |
38 } | 45 } |
39 | 46 |
66 } | 73 } |
67 | 74 |
68 Document create = ClientProtocolUtils.newCreateDocument( | 75 Document create = ClientProtocolUtils.newCreateDocument( |
69 factory, uuid, ids, filter); | 76 factory, uuid, ids, filter); |
70 | 77 |
78 return sendCreate(serverUrl, locale, create); | |
79 | |
80 } | |
81 | |
82 /** | |
83 * Creates a new GaugeDischargeCurverArtifact | |
84 * | |
85 * @param river the name of the river | |
86 * @param reference the reference id of the gauge (official number) | |
87 */ | |
88 public static Artifact createGaugeDischargeCurveArtifact( | |
89 String serverUrl, | |
90 String locale, | |
91 String river, | |
92 Long reference) | |
93 throws ServerException | |
94 { | |
95 Document create = ClientProtocolUtils.newCreateDocument( | |
96 GAUGE_DISCHARGE_CURVE_ARTIFACT); | |
97 | |
98 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( | |
99 create, | |
100 ArtifactNamespaceContext.NAMESPACE_URI, | |
101 ArtifactNamespaceContext.NAMESPACE_PREFIX); | |
102 | |
103 Element root = create.getDocumentElement(); | |
104 | |
105 Element eriver = ec.create("river"); | |
106 ec.addAttr(eriver, "name", river); | |
107 | |
108 Element egauge = ec.create("gauge"); | |
109 ec.addAttr(egauge, "reference", reference.toString()); | |
110 | |
111 root.appendChild(eriver); | |
112 root.appendChild(egauge); | |
113 | |
114 return sendCreate(serverUrl, locale, create); | |
115 } | |
116 | |
117 /** | |
118 * Sends a create document to the artifact server | |
119 */ | |
120 private static Artifact sendCreate( | |
121 String serverUrl, | |
122 String locale, | |
123 Document doc) | |
124 throws ServerException | |
125 { | |
71 HttpClient client = new HttpClientImpl(serverUrl, locale); | 126 HttpClient client = new HttpClientImpl(serverUrl, locale); |
72 | 127 |
73 try { | 128 try { |
74 return (Artifact) client.create(create, new FLYSArtifactCreator()); | 129 return (Artifact) client.create(doc, new FLYSArtifactCreator()); |
75 } | 130 } |
76 catch (ConnectionException ce) { | 131 catch (ConnectionException ce) { |
77 logger.error(ce, ce); | 132 logger.error(ce, ce); |
78 } | 133 } |
79 | 134 |