1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.chain.impl;
18
19 import java.util.HashMap;
20 import java.util.Iterator;
21 import java.util.Map;
22 import org.apache.commons.chain.Catalog;
23 import org.apache.commons.chain.CatalogFactory;
24
25 /***
26 * <p>A simple implementation of {@link CatalogFactory}.</p>
27 *
28 * @author Sean Schofield
29 * @version $Revision: 1.4 $ $Date: 2004/11/30 05:52:23 $
30 */
31
32 public class CatalogFactoryBase extends CatalogFactory {
33
34
35
36
37
38 /***
39 * <p>Construct an empty instance of {@link CatalogFactoryBase}. This
40 * constructor is intended solely for use by {@link CatalogFactory}.</p>
41 */
42 public CatalogFactoryBase() { }
43
44
45
46
47
48 /***
49 * <p>The default {@link Catalog} for this {@link CatalogFactory).</p>
50 */
51 private Catalog catalog = null;
52
53
54 /***
55 * <p>Map of named {@link Catalog}s, keyed by catalog name.</p>
56 */
57 private Map catalogs = new HashMap();
58
59
60
61
62
63
64 public Catalog getCatalog() {
65
66 return catalog;
67
68 }
69
70
71
72 public void setCatalog(Catalog catalog) {
73
74 this.catalog = catalog;
75
76 }
77
78
79
80 public Catalog getCatalog(String name) {
81
82 synchronized (catalogs) {
83 return (Catalog) catalogs.get(name);
84 }
85
86 }
87
88
89
90 public void addCatalog(String name, Catalog catalog) {
91
92 synchronized (catalogs) {
93 catalogs.put(name, catalog);
94 }
95
96 }
97
98
99
100 public Iterator getNames() {
101
102 synchronized (catalogs) {
103 return catalogs.keySet().iterator();
104 }
105
106 }
107
108
109 }