Mercurial > dive4elements > framework
diff artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java @ 13:0d6badf6af42
Added not yet working backend to artifact database.
artifacts/trunk@28 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sun, 06 Sep 2009 16:16:54 +0000 |
parents | |
children | 83a059c204f8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java Sun Sep 06 16:16:54 2009 +0000 @@ -0,0 +1,57 @@ +package de.intevation.artifactdatabase; + +import java.util.HashMap; + +import de.intevation.artifacts.ArtifactDatabase; +import de.intevation.artifacts.ArtifactFactory; +import de.intevation.artifacts.Artifact; + +/** + * @author Sascha L. Teichmann + */ +public class ArtifactDatabaseImpl +implements ArtifactDatabase +{ + protected String [] factoryNames; + protected HashMap name2factory; + + protected Backend backend; + protected Object context; + + public ArtifactDatabaseImpl() { + } + + public ArtifactDatabaseImpl(FactoryBootstrap bootstrap, Backend backend) { + name2factory = new HashMap(); + + ArtifactFactory [] factories = bootstrap.getArtifactFactories(); + factoryNames = new String[factories.length]; + + for (int i = 0; i < factories.length; ++i) { + ArtifactFactory factory = factories[i]; + name2factory.put(factoryNames[i] = factory.getName(), factory); + } + + context = bootstrap.getContext(); + } + + public String [] getArtifactFactoryNames() { + return factoryNames; + } + + public Artifact getArtifact(String identifier) { + return backend.getArtifact(identifier); + } + + public Artifact createArtifactWithFactory(String factoryName) { + ArtifactFactory factory = (ArtifactFactory)name2factory.get(factoryName); + return factory == null + ? null + : backend.createArtifactWithFactory(factory, context); + } + + public Object getArtifactContext() { + return context; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: