diff flys-client/src/main/java/de/intevation/flys/client/server/CollectionAttributeServiceImpl.java @ 530:26e38b79658d

Connected the CollectionAttributeService with the artifact server - Collection modifications will now be stored in the artifact databae. flys-client/trunk@2018 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 27 May 2011 08:59:26 +0000
parents 96e60e0a4345
children ab8eb2f544f2
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/server/CollectionAttributeServiceImpl.java	Fri May 27 08:53:22 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/server/CollectionAttributeServiceImpl.java	Fri May 27 08:59:26 2011 +0000
@@ -1,5 +1,14 @@
 package de.intevation.flys.client.server;
 
+import org.w3c.dom.Document;
+
+import de.intevation.artifacts.common.utils.ClientProtocolUtils;
+
+import de.intevation.artifacts.httpclient.exceptions.ConnectionException;
+import de.intevation.artifacts.httpclient.http.HttpClient;
+import de.intevation.artifacts.httpclient.http.HttpClientImpl;
+import de.intevation.artifacts.httpclient.http.response.DocumentResponseHandler;
+
 import de.intevation.flys.client.shared.exceptions.ServerException;
 import de.intevation.flys.client.shared.model.Collection;
 
@@ -13,20 +22,36 @@
 extends      DescribeCollectionServiceImpl
 implements   CollectionAttributeService
 {
+    public static final String ERROR_UPDATING_COLLECTION_ATTRIBUTE =
+        "error_update_collection_attribute";
+
+
     public Collection update(Collection collection, String url, String locale)
     throws ServerException
     {
         System.out.println("CollectionAttributeServiceImpl.update");
 
-        // TODO Implement the correct update process here!
+        Document attribute = CollectionHelper.createAttribute(collection);
+        Document action    = ClientProtocolUtils.newSetAttributeDocument(
+            collection.identifier(),
+            attribute);
+
         try {
-            Thread.currentThread().sleep(5000);
+            HttpClient http = new HttpClientImpl(url, locale);
+            Document   res  = (Document) http.doCollectionAction(
+                action,
+                collection.identifier(),
+                new DocumentResponseHandler());
+
+            System.out.println("Collection attribute successfully set.");
+
+            return describe(collection.identifier(), url, locale);
         }
-        catch (InterruptedException ie) {
-            // do nothing
+        catch (ConnectionException ce) {
+            System.err.println(ce.getLocalizedMessage());
         }
 
-        return describe(collection.identifier(), url, locale);
+        throw new ServerException(ERROR_UPDATING_COLLECTION_ATTRIBUTE);
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org