diff artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java @ 32:c2d53bd30ab8

Re-factored artifact API for better integration of background processing. artifacts/trunk@78 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sun, 13 Sep 2009 14:50:53 +0000
parents 83a059c204f8
children af22d4de275c
line wrap: on
line diff
--- a/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java	Sat Sep 12 10:45:28 2009 +0000
+++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java	Sun Sep 13 14:50:53 2009 +0000
@@ -23,8 +23,8 @@
 import java.io.IOException;
 
 import de.intevation.artifacts.ArtifactNamespaceContext;
+import de.intevation.artifacts.ArtifactDatabaseException;
 import de.intevation.artifacts.ArtifactDatabase;
-import de.intevation.artifacts.Artifact;
 
 /**
  * @author Sascha L. Teichmann (sascha.teichmann@intevation)
@@ -68,7 +68,8 @@
 
         if (factory == null || factory.length() == 0) {
             Response response = getResponse();
-            response.setStatus(Status.CLIENT_ERROR_BAD_REQUEST, NO_FACTORY_MESSAGE);
+            response.setStatus(
+                Status.CLIENT_ERROR_BAD_REQUEST, NO_FACTORY_MESSAGE);
             return new EmptyRepresentation();
         }
 
@@ -79,19 +80,17 @@
         ArtifactDatabase db = (ArtifactDatabase)getContext()
             .getAttributes().get("database");
 
-        Artifact artifact = db.createArtifactWithFactory(factory);
-
-        if (artifact == null) {
+        try {
+            return new DomRepresentation(
+                MediaType.APPLICATION_XML,
+                db.createArtifactWithFactory(factory));
+        }
+        catch (ArtifactDatabaseException adbe) {
             Response response = getResponse();
-            response.setStatus(Status.CLIENT_ERROR_UNPROCESSABLE_ENTITY, NO_ARTIFACT_CREATED);
+            response.setStatus(
+                Status.CLIENT_ERROR_UNPROCESSABLE_ENTITY, adbe.getMessage());
             return new EmptyRepresentation();
         }
-        
-        Document outputDocument = artifact.describe(
-            db.getArtifactContext());
-
-        return new DomRepresentation(
-            MediaType.APPLICATION_XML, outputDocument);
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8:

http://dive4elements.wald.intevation.org