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: sascha@32: Document createArtifactWithFactory(String factory) sascha@32: throws ArtifactDatabaseException; sascha@4: sascha@32: Document describe(String artifact) sascha@32: throws ArtifactDatabaseException; sascha@32: sascha@32: Document advance(String artifact, Document target) sascha@32: throws ArtifactDatabaseException; sascha@32: sascha@32: Document feed(String artifact, Document data) sascha@32: throws ArtifactDatabaseException; sascha@32: sascha@32: DeferredOutput out(String artifact, Document format) sascha@32: throws ArtifactDatabaseException; sascha@32: sascha@1: } sascha@1: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: