sascha@27: package de.intevation.artifactdatabase.rest; sascha@27: sascha@27: import org.restlet.resource.Get; sascha@27: import org.restlet.resource.Post; sascha@27: import org.restlet.resource.ServerResource; sascha@27: sascha@27: import org.restlet.representation.Representation; sascha@27: import org.restlet.representation.EmptyRepresentation; sascha@27: sascha@27: import org.restlet.ext.xml.DomRepresentation; sascha@27: sascha@27: import de.intevation.artifacts.ArtifactDatabase; sascha@27: import de.intevation.artifacts.Artifact; sascha@27: sascha@27: import org.restlet.data.Request; sascha@27: import org.restlet.data.Response; sascha@27: import org.restlet.data.Status; sascha@27: sascha@27: import org.restlet.data.MediaType; sascha@27: sascha@27: import org.apache.log4j.Logger; sascha@27: sascha@27: import org.w3c.dom.Document; sascha@27: sascha@27: /** sascha@27: * @author Sascha L. Teichmann (sascha.teichmann@intevation) sascha@27: */ sascha@27: public class ArtifactResource sascha@27: extends ServerResource sascha@27: { sascha@27: private static Logger logger = Logger.getLogger(ArtifactResource.class); sascha@27: sascha@27: public static final String PATH = "/artifact/{uuid}"; sascha@27: sascha@27: public static final String NO_ARTIFACT_FOUND = "Artifact not found"; sascha@27: sascha@27: @Get sascha@27: public Representation represent() { sascha@27: sascha@27: Request request = getRequest(); sascha@27: sascha@27: String identifier = (String)request.getAttributes().get("uuid"); sascha@27: sascha@27: if (logger.isDebugEnabled()) { sascha@27: logger.debug("looking for artifact id '" + identifier + "'"); sascha@27: } sascha@27: sascha@27: ArtifactDatabase db = (ArtifactDatabase)getContext() sascha@27: .getAttributes().get("database"); sascha@27: sascha@27: Artifact artifact = db.getArtifact(identifier); sascha@27: sascha@27: if (artifact == null) { sascha@27: Response response = getResponse(); sascha@27: response.setStatus(Status.CLIENT_ERROR_NOT_FOUND, NO_ARTIFACT_FOUND); sascha@27: return new EmptyRepresentation(); sascha@27: } sascha@27: sascha@27: Document description = artifact.describe(db.getArtifactContext()); sascha@27: sascha@27: if (logger.isDebugEnabled()) { sascha@27: logger.debug("out document: " + description); sascha@27: } sascha@27: sascha@27: return new DomRepresentation( sascha@27: MediaType.APPLICATION_XML, description); sascha@27: } sascha@27: sascha@27: /* sascha@27: @Post sascha@27: public Representation representPost() { sascha@27: return new EmptyRepresentation(); sascha@27: } sascha@27: */ sascha@27: } sascha@27: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: