sascha@1: package de.intevation.artifacts; sascha@1: sascha@32: import org.w3c.dom.Document; sascha@32: sascha@32: import java.io.OutputStream; sascha@32: import java.io.IOException; sascha@32: sascha@1: /** sascha@1: * Interface of an artifact managing database. sascha@1: * sascha@1: * @author Sascha L. Teichmann (sascha.teichmann@intevation.de) sascha@1: */ sascha@1: public interface ArtifactDatabase sascha@1: { sascha@32: public interface DeferredOutput { sascha@1: sascha@32: void write(OutputStream output) throws IOException; sascha@32: sascha@32: } // interface DeferredOut sascha@1: sascha@1: /** sascha@32: * List of artifact factories names accessible through the database. sascha@32: * @return pairs of names and descriptions of the factories. sascha@1: */ sascha@32: String [][] artifactFactoryNamesAndDescriptions(); sascha@4: ingo@66: ArtifactFactory getInternalArtifactFactory(String factoryName); ingo@66: sascha@48: Document createArtifactWithFactory(String factory, CallMeta callMeta) sascha@32: throws ArtifactDatabaseException; sascha@32: sascha@55: Document describe(String artifact, Document data, CallMeta callMeta) sascha@32: throws ArtifactDatabaseException; sascha@32: sascha@48: Document advance(String artifact, Document target, CallMeta callMeta) sascha@32: throws ArtifactDatabaseException; sascha@32: sascha@48: Document feed(String artifact, Document data, CallMeta callMeta) sascha@48: throws ArtifactDatabaseException; sascha@48: sascha@48: DeferredOutput out(String artifact, Document format, CallMeta callMeta) sascha@32: throws ArtifactDatabaseException; sascha@32: sascha@68: String [][] serviceNamesAndDescriptions(); sascha@68: sascha@70: Document process(String service, Document input, CallMeta callMeta) sascha@70: throws ArtifactDatabaseException; sascha@68: sascha@1: } sascha@1: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: