diff flys-client/src/main/java/de/intevation/flys/client/server/ArtifactServiceImpl.java @ 905:478a571f1f94

Refactored server code - HTTP related code moved to ArtifactsHelper and CollectionHelper which makes us able to combine Artifact and Collection protocol stuff in a single RPC service. flys-client/trunk@2757 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 15 Sep 2011 12:55:36 +0000
parents 4db672cdacb2
children ab8eb2f544f2
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/server/ArtifactServiceImpl.java	Thu Sep 15 08:39:07 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/server/ArtifactServiceImpl.java	Thu Sep 15 12:55:36 2011 +0000
@@ -1,20 +1,7 @@
 package de.intevation.flys.client.server;
 
-import org.w3c.dom.Document;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
 import com.google.gwt.user.server.rpc.RemoteServiceServlet;
 
-import de.intevation.artifacts.common.utils.ClientProtocolUtils;
-import de.intevation.artifacts.common.utils.CreationFilter;
-
-import de.intevation.artifacts.httpclient.exceptions.ConnectionException;
-import de.intevation.artifacts.httpclient.http.HttpClient;
-import de.intevation.artifacts.httpclient.http.HttpClientImpl;
-
 import de.intevation.flys.client.shared.exceptions.ServerException;
 import de.intevation.flys.client.shared.model.Artifact;
 import de.intevation.flys.client.client.services.ArtifactService;
@@ -31,73 +18,27 @@
 extends      RemoteServiceServlet
 implements   ArtifactService
 {
-    /** The error message key that is thrown if an error occured while artifact
-     * creation.*/
-    public static final String ERROR_CREATE_ARTIFACT = "error_create_artifact";
-
-
+    /**
+     * Creates new Artifacts based on a given Recommendation and factory.
+     * <b>Note, that all the work is done in ArtifactHelper!</b>
+     *
+     * @param serverUrl The URL of the ArtifactServer.
+     * @param locale The locale used for HTTP request.
+     * @param factory The factory that is used to create the new Artifact.
+     *
+     * @return a new Artifact.
+     */
     public Artifact create(
         String         serverUrl,
         String         locale,
         String         factory,
-        Recommendation recommendation
+        Recommendation recom
     )
     throws ServerException
     {
         System.out.println("ArtifactServiceImpl.create");
 
-        String         uuid;
-        String         ids;
-        CreationFilter filter;
-
-        if (recommendation != null) {
-            uuid   = recommendation.getMasterArtifact();
-            ids    = recommendation.getIDs();
-            filter = convertFilter(recommendation.getFilter());
-        }
-        else {
-            uuid   = null;
-            ids    = null;
-            filter = null;
-        }
-
-        Document create = ClientProtocolUtils.newCreateDocument(
-            factory, uuid, ids, filter);
-
-        HttpClient client = new HttpClientImpl(serverUrl, locale);
-
-        try {
-            return (Artifact) client.create(create, new FLYSArtifactCreator());
-        }
-        catch (ConnectionException ce) {
-            System.err.println(ce.getLocalizedMessage());
-        }
-
-        throw new ServerException(ERROR_CREATE_ARTIFACT);
-    }
-
-    public static CreationFilter convertFilter(Recommendation.Filter filter) {
-
-        if (filter == null) {
-            return null;
-        }
-
-        CreationFilter cf = new CreationFilter();
-
-        Map<String, List<Recommendation.Facet>> outs = filter.getOuts();
-
-        for (Map.Entry<String, List<Recommendation.Facet>> entry:
-            outs.entrySet()) {
-            List<Recommendation.Facet> rfs = entry.getValue();
-            List<CreationFilter.Facet> cfs =
-                new ArrayList<CreationFilter.Facet>(rfs.size());
-            for (Recommendation.Facet rf: rfs) {
-                cfs.add(new CreationFilter.Facet(rf.getName(), rf.getIndex()));
-            }
-            cf.add(entry.getKey(), cfs);
-        }
-
-        return cf;
+        return ArtifactHelper.createArtifact(serverUrl, locale, factory, recom);
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org