Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/server/AddArtifactServiceImpl.java @ 99:5c3d685546a6
Added a new service to describe collections.
flys-client/trunk@1613 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 30 Mar 2011 07:35:59 +0000 |
parents | c8cd1b918901 |
children | f7967d12ce6e |
rev | line source |
---|---|
69
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.client.server; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
3 import java.util.ArrayList; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
4 import java.util.List; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
5 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
6 import javax.xml.xpath.XPathConstants; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
7 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 import org.w3c.dom.Document; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
9 import org.w3c.dom.Node; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 import org.w3c.dom.NodeList; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
11 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 import com.google.gwt.user.server.rpc.RemoteServiceServlet; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 import de.intevation.artifacts.common.ArtifactNamespaceContext; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import de.intevation.artifacts.common.utils.ClientProtocolUtils; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 import de.intevation.artifacts.common.utils.XMLUtils; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 import de.intevation.artifacts.httpclient.exceptions.ConnectionException; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 import de.intevation.artifacts.httpclient.http.HttpClient; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
20 import de.intevation.artifacts.httpclient.http.HttpClientImpl; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 import de.intevation.artifacts.httpclient.http.response.DocumentResponseHandler; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
22 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
23 import de.intevation.flys.client.shared.model.Artifact; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
24 import de.intevation.flys.client.shared.model.Collection; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 import de.intevation.flys.client.shared.model.CollectionItem; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
26 import de.intevation.flys.client.shared.model.DefaultCollection; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
27 import de.intevation.flys.client.shared.model.DefaultCollectionItem; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
28 import de.intevation.flys.client.shared.model.DefaultOutputMode; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
29 import de.intevation.flys.client.shared.model.OutputMode; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 import de.intevation.flys.client.client.services.AddArtifactService; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
31 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
32 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 /** |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 */ |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
36 public class AddArtifactServiceImpl |
99
5c3d685546a6
Added a new service to describe collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
87
diff
changeset
|
37 extends DescribeCollectionServiceImpl |
69
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 implements AddArtifactService |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 { |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 public Collection add(Collection collection, Artifact artifact, String url) { |
99
5c3d685546a6
Added a new service to describe collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
87
diff
changeset
|
41 System.out.println("AddArtifactServiceImpl.add"); |
69
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 Document add = ClientProtocolUtils.newAddArtifactDocument( |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 artifact.getUuid(), null); |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 HttpClient client = new HttpClientImpl(url); |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
48 try { |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
49 Document response = (Document) client.doCollectionAction( |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
50 add, collection.identifier(), new DocumentResponseHandler()); |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 Collection c = parseCollection(response); |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
54 if (c == null) { |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
55 throw new NullPointerException("No collection returned."); |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
56 } |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
58 return c; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
59 } |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
60 catch (ConnectionException ce) { |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 System.err.println(ce.getLocalizedMessage()); |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 } |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
63 |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
64 return null; |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
65 } |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
66 } |
4bdb18e5f484
Added a service to add artifacts to collections.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
67 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |