comparison flys-client/src/main/java/de/intevation/flys/client/server/AdvanceServiceImpl.java @ 32:88c530c25968

Added a service for the ADVANCE operation and a service that bundles FEED and ADVANCE in a single service. flys-client/trunk@1451 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 10 Mar 2011 10:53:41 +0000
parents
children e02f50a3ad59
comparison
equal deleted inserted replaced
31:e8745ca02f2b 32:88c530c25968
1 package de.intevation.flys.client.server;
2
3 import org.w3c.dom.Document;
4
5 import com.google.gwt.user.server.rpc.RemoteServiceServlet;
6
7 import de.intevation.artifacts.common.ArtifactNamespaceContext;
8 import de.intevation.artifacts.common.utils.ClientProtocolUtils;
9 import de.intevation.artifacts.common.utils.XMLUtils;
10
11 import de.intevation.artifacts.httpclient.exceptions.ConnectionException;
12 import de.intevation.artifacts.httpclient.http.HttpClient;
13 import de.intevation.artifacts.httpclient.http.HttpClientImpl;
14 import de.intevation.artifacts.httpclient.http.response.DocumentResponseHandler;
15
16 import de.intevation.flys.client.shared.model.Artifact;
17 import de.intevation.flys.client.client.services.AdvanceService;
18
19
20 /**
21 * This interface provides artifact specific operation ADVANCE.
22 *
23 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
24 */
25 public class AdvanceServiceImpl
26 extends RemoteServiceServlet
27 implements AdvanceService
28 {
29 public static final String XPATH_RESULT = "/art:result/text()";
30
31 public static final String OPERATION_FAILURE = "FAILED";
32
33
34 public Artifact advance(String serverUrl, Artifact artifact, String target){
35 Document advance = ClientProtocolUtils.newAdvanceDocument(
36 artifact.getUuid(),
37 artifact.getHash(),
38 target);
39
40 HttpClient client = new HttpClientImpl(serverUrl);
41
42 try {
43 Document description = (Document) client.advance(
44 new de.intevation.artifacts.httpclient.objects.Artifact(
45 artifact.getUuid(),
46 artifact.getHash()),
47 advance,
48 new DocumentResponseHandler());
49
50 if (description == null) {
51 return null;
52 }
53
54 String result = XMLUtils.xpathString(
55 description,
56 XPATH_RESULT,
57 ArtifactNamespaceContext.INSTANCE);
58
59 if (result == null || !result.equals(OPERATION_FAILURE)) {
60 return (Artifact) new FLYSArtifactCreator().create(description);
61 }
62 }
63 catch (ConnectionException ce) {
64 System.err.println(ce.getLocalizedMessage());
65 }
66
67 return null;
68 }
69 }
70 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org