ingo@100: /*
ingo@143: * Copyright (c) 2010, 2011 by Intevation GmbH
ingo@100: *
ingo@100: * This program is free software under the LGPL (>=v2.1)
ingo@100: * Read the file LGPL.txt coming with the software for details
ingo@100: * or visit http://www.gnu.org/licenses/ if it does not exist.
ingo@100: */
ingo@100:
sascha@29: package de.intevation.artifactdatabase.rest;
sascha@29:
sascha@93: import de.intevation.artifacts.ArtifactDatabase;
sascha@93: import de.intevation.artifacts.ArtifactDatabaseException;
ingo@143: import de.intevation.artifacts.CallMeta;
sascha@93:
sascha@29: import org.apache.log4j.Logger;
sascha@29:
ingo@101: import org.restlet.Request;
sascha@29:
sascha@29: import org.w3c.dom.Document;
sascha@29:
sascha@29: /**
sascha@88: * Resource to serve the out()-outputs of artifacts.
sascha@77: * @author Sascha L. Teichmann
ingo@143: * @author Ingo Weinzierl
sascha@29: */
sascha@29: public class ArtifactOutResource
ingo@143: extends BaseOutResource
sascha@29: {
sascha@88: /**
sascha@88: * server URL where to find the resource.
sascha@88: */
sascha@29: public static final String PATH = "/artifact/{uuid}/{type}";
sascha@29:
sascha@29: private static Logger logger = Logger.getLogger(ArtifactOutResource.class);
sascha@29:
sascha@29:
ingo@143: /**
ingo@143: * Returns the identifier of the collection.
ingo@143: *
ingo@143: * @return the identifier of the collection.
ingo@143: */
ingo@143: protected String getIdentifier() {
sascha@40: Request request = getRequest();
sascha@40:
ingo@143: return (String) request.getAttributes().get("uuid");
ingo@143: }
sascha@29:
sascha@29:
ingo@269: protected String getType() {
ingo@269: Request request = getRequest();
ingo@269:
ingo@269: return (String) request.getAttributes().get("type");
ingo@269: }
ingo@269:
ingo@269:
ingo@143: /**
ingo@143: * Call the ArtifactDatabase.out method.
ingo@143: */
ingo@143: protected ArtifactDatabase.DeferredOutput doOut(
ingo@143: String identifier,
ingo@269: String type,
ingo@143: Document input,
ingo@143: ArtifactDatabase db,
ingo@143: CallMeta meta)
ingo@143: throws ArtifactDatabaseException
ingo@143: {
ingo@143: logger.debug("ArtifactOutResource.doOut");
ingo@143:
ingo@269: return db.out(identifier, type, input, meta);
sascha@29: }
sascha@29: }
sascha@88: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :