ingo@100: /* ingo@100: * Copyright (c) 2010 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: teichmann@475: package org.dive4elements.artifacts; sascha@68: sascha@68: import java.io.Serializable; sascha@68: sascha@68: import org.w3c.dom.Document; sascha@68: sascha@68: /** sascha@78: * The idea is to process some input XML document to produce an output sascha@78: * XML document. sascha@77: * @author Sascha L. Teichmann sascha@68: */ sascha@68: public interface Service sascha@68: extends Serializable sascha@68: { sascha@380: interface Output { sascha@380: Object getData(); sascha@380: sascha@380: String getMIMEType(); sascha@380: } // interface Output sascha@380: sascha@78: /** sascha@78: * Processes some input XML document sascha@78: * @param data The input data sascha@78: * @param globalContext The global context of the artifact database. sascha@78: * @param callMeta The call meta contex, e.g. preferred languages. sascha@380: * @return The result. sascha@78: */ sascha@380: Output process(Document data, GlobalContext globalContext, CallMeta callMeta); sascha@69: sascha@78: /** sascha@78: * Setup the concrete processing service. This is done at startup time sascha@78: * of the artifact database system. sascha@78: * @param factory The service factory which created this service. sascha@78: * @param globalContext The global context of the artifact database. sascha@78: */ sascha@299: void setup(ServiceFactory factory, GlobalContext globalContext); sascha@68: } sascha@68: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :