comparison 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
comparison
equal deleted inserted replaced
12:3f01e317f615 13:0d6badf6af42
1 package de.intevation.artifactdatabase;
2
3 import java.util.HashMap;
4
5 import de.intevation.artifacts.ArtifactDatabase;
6 import de.intevation.artifacts.ArtifactFactory;
7 import de.intevation.artifacts.Artifact;
8
9 /**
10 * @author Sascha L. Teichmann
11 */
12 public class ArtifactDatabaseImpl
13 implements ArtifactDatabase
14 {
15 protected String [] factoryNames;
16 protected HashMap name2factory;
17
18 protected Backend backend;
19 protected Object context;
20
21 public ArtifactDatabaseImpl() {
22 }
23
24 public ArtifactDatabaseImpl(FactoryBootstrap bootstrap, Backend backend) {
25 name2factory = new HashMap();
26
27 ArtifactFactory [] factories = bootstrap.getArtifactFactories();
28 factoryNames = new String[factories.length];
29
30 for (int i = 0; i < factories.length; ++i) {
31 ArtifactFactory factory = factories[i];
32 name2factory.put(factoryNames[i] = factory.getName(), factory);
33 }
34
35 context = bootstrap.getContext();
36 }
37
38 public String [] getArtifactFactoryNames() {
39 return factoryNames;
40 }
41
42 public Artifact getArtifact(String identifier) {
43 return backend.getArtifact(identifier);
44 }
45
46 public Artifact createArtifactWithFactory(String factoryName) {
47 ArtifactFactory factory = (ArtifactFactory)name2factory.get(factoryName);
48 return factory == null
49 ? null
50 : backend.createArtifactWithFactory(factory, context);
51 }
52
53 public Object getArtifactContext() {
54 return context;
55 }
56 }
57 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8:

http://dive4elements.wald.intevation.org