sascha@13: package de.intevation.artifactdatabase; sascha@13: sascha@13: import java.util.HashMap; sascha@13: sascha@13: import de.intevation.artifacts.ArtifactDatabase; sascha@13: import de.intevation.artifacts.ArtifactFactory; sascha@13: import de.intevation.artifacts.Artifact; sascha@13: sascha@13: /** sascha@13: * @author Sascha L. Teichmann sascha@13: */ sascha@13: public class ArtifactDatabaseImpl sascha@13: implements ArtifactDatabase sascha@13: { sascha@13: protected String [] factoryNames; sascha@13: protected HashMap name2factory; sascha@13: sascha@13: protected Backend backend; sascha@13: protected Object context; sascha@13: sascha@13: public ArtifactDatabaseImpl() { sascha@13: } sascha@13: sascha@13: public ArtifactDatabaseImpl(FactoryBootstrap bootstrap, Backend backend) { sascha@13: name2factory = new HashMap(); sascha@13: sascha@13: ArtifactFactory [] factories = bootstrap.getArtifactFactories(); sascha@13: factoryNames = new String[factories.length]; sascha@13: sascha@13: for (int i = 0; i < factories.length; ++i) { sascha@13: ArtifactFactory factory = factories[i]; sascha@13: name2factory.put(factoryNames[i] = factory.getName(), factory); sascha@13: } sascha@13: sascha@13: context = bootstrap.getContext(); sascha@13: } sascha@13: sascha@13: public String [] getArtifactFactoryNames() { sascha@13: return factoryNames; sascha@13: } sascha@13: sascha@13: public Artifact getArtifact(String identifier) { sascha@13: return backend.getArtifact(identifier); sascha@13: } sascha@13: sascha@13: public Artifact createArtifactWithFactory(String factoryName) { sascha@13: ArtifactFactory factory = (ArtifactFactory)name2factory.get(factoryName); sascha@13: return factory == null sascha@13: ? null sascha@13: : backend.createArtifactWithFactory(factory, context); sascha@13: } sascha@13: sascha@13: public Object getArtifactContext() { sascha@13: return context; sascha@13: } sascha@13: } sascha@13: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: