sascha@1: package de.intevation.artifacts; sascha@1: 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@1: /** sascha@1: * List of artifact factories names accessible through the database. sascha@1: * @return names of the factories. sascha@1: */ sascha@1: String [] getArtifactFactoryNames(); sascha@1: sascha@1: /** sascha@1: * Look up an artifact by its identifier. sascha@1: * @return the artifact. null if the artifact is not found. sascha@1: */ sascha@1: Artifact getArtifact(String identifier); sascha@1: sascha@1: /** sascha@1: * Creates new artifact with a certain factory. sascha@4: * @param factoryName the name of the factory. Name out of {@link #getArtifactFactoryNames() getArtifactFactoryNames()}. sascha@1: */ sascha@1: Artifact createArtifactWithFactory(String factoryName); sascha@4: sascha@4: sascha@4: /** sascha@4: * Returns the global artifact runtime context. sascha@4: * @return the runtime context sascha@4: */ sascha@4: Object getArtifactContext(); sascha@1: } sascha@1: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: