Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/server/CreateCollectionServiceImpl.java @ 215:e02f50a3ad59
Improved the exception handling of artifact / collection specific operations. Warning dialog are displayed after such an exception.
flys-client/trunk@1657 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 08 Apr 2011 08:51:28 +0000 |
parents | 987567f31200 |
children | 924da6695800 |
comparison
equal
deleted
inserted
replaced
214:29c6d9573ae7 | 215:e02f50a3ad59 |
---|---|
11 import de.intevation.artifacts.httpclient.exceptions.ConnectionException; | 11 import de.intevation.artifacts.httpclient.exceptions.ConnectionException; |
12 import de.intevation.artifacts.httpclient.http.HttpClient; | 12 import de.intevation.artifacts.httpclient.http.HttpClient; |
13 import de.intevation.artifacts.httpclient.http.HttpClientImpl; | 13 import de.intevation.artifacts.httpclient.http.HttpClientImpl; |
14 import de.intevation.artifacts.httpclient.http.response.DocumentResponseHandler; | 14 import de.intevation.artifacts.httpclient.http.response.DocumentResponseHandler; |
15 | 15 |
16 import de.intevation.flys.client.shared.exceptions.ServerException; | |
16 import de.intevation.flys.client.shared.model.Collection; | 17 import de.intevation.flys.client.shared.model.Collection; |
17 import de.intevation.flys.client.shared.model.DefaultCollection; | 18 import de.intevation.flys.client.shared.model.DefaultCollection; |
18 import de.intevation.flys.client.client.services.CreateCollectionService; | 19 import de.intevation.flys.client.client.services.CreateCollectionService; |
19 | 20 |
20 | 21 |
30 { | 31 { |
31 /** XPath to figure out the uuid of the created collection.*/ | 32 /** XPath to figure out the uuid of the created collection.*/ |
32 public static final String XPATH_COLLECTION_UUID = | 33 public static final String XPATH_COLLECTION_UUID = |
33 "/art:result/art:artifact-collection/@art:uuid"; | 34 "/art:result/art:artifact-collection/@art:uuid"; |
34 | 35 |
36 /** Error message key that is thrown if an error occured while creating | |
37 * a new collection.*/ | |
38 public static final String ERROR_CREATE_COLLECTION = | |
39 "error_create_collection"; | |
35 | 40 |
36 public Collection create(String serverUrl, String ownerId) { | 41 |
42 public Collection create(String serverUrl, String ownerId) | |
43 throws ServerException | |
44 { | |
37 System.out.println("Start creating a new collection."); | 45 System.out.println("Start creating a new collection."); |
38 | 46 |
39 Document create = | 47 Document create = |
40 ClientProtocolUtils.newCreateCollectionDocument(null); | 48 ClientProtocolUtils.newCreateCollectionDocument(null); |
41 HttpClient client = new HttpClientImpl(serverUrl); | 49 HttpClient client = new HttpClientImpl(serverUrl); |
45 create, ownerId, new DocumentResponseHandler()); | 53 create, ownerId, new DocumentResponseHandler()); |
46 | 54 |
47 String uuid = XMLUtils.xpathString( | 55 String uuid = XMLUtils.xpathString( |
48 doc, XPATH_COLLECTION_UUID, ArtifactNamespaceContext.INSTANCE); | 56 doc, XPATH_COLLECTION_UUID, ArtifactNamespaceContext.INSTANCE); |
49 | 57 |
58 if (uuid == null || uuid.trim().length() == 0) { | |
59 throw new ServerException(ERROR_CREATE_COLLECTION); | |
60 } | |
61 | |
50 return new DefaultCollection(uuid); | 62 return new DefaultCollection(uuid); |
51 } | 63 } |
52 catch (ConnectionException ce) { | 64 catch (ConnectionException ce) { |
53 System.err.println(ce.getLocalizedMessage()); | 65 System.err.println(ce.getLocalizedMessage()); |
54 } | 66 } |
55 | 67 |
56 return null; | 68 throw new ServerException(ERROR_CREATE_COLLECTION); |
57 } | 69 } |
58 } | 70 } |
59 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 71 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |