Mercurial > dive4elements > framework
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: