Mercurial > dive4elements > framework
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: |