1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package ch.elca.el4j.core.contextpassing;
18
19 import java.util.HashMap;
20 import java.util.Iterator;
21 import java.util.Map;
22
23
24
25
26
27
28
29
30
31 public class DefaultImplicitContextPassingRegistry implements
32 ImplicitContextPassingRegistry {
33
34
35 private Map<String,ImplicitContextPasser> m_registeredPassers =
36 new HashMap<String,ImplicitContextPasser>();
37
38
39
40
41 public void registerImplicitContextPasser(
42 ImplicitContextPasser passer) {
43 String id = passer.getClass().getName();
44 m_registeredPassers.put(id, passer);
45 }
46
47
48
49
50 public void unregisterImplicitContextPasser(
51 ImplicitContextPasser passer) {
52 String id = passer.getClass().getName();
53 m_registeredPassers.remove(id);
54 }
55
56
57
58
59 public Map<String,Object> getAssembledImplicitContext() {
60 Map<String,Object> context = new HashMap<String,Object>();
61 Iterator<String> it = m_registeredPassers.keySet().iterator();
62 while (it.hasNext()) {
63 String id = (String) it.next();
64 ImplicitContextPasser passer
65 = (ImplicitContextPasser) m_registeredPassers.get(id);
66 Object ctx = passer.getImplicitlyPassedContext();
67 context.put(id, ctx);
68 }
69 return context;
70 }
71
72
73
74
75 public void pushAssembledImplicitContext(Map<String,Object> contexts) {
76 Iterator<String> it = m_registeredPassers.keySet().iterator();
77 while (it.hasNext()) {
78 String id = (String) it.next();
79 ImplicitContextPasser passer
80 = (ImplicitContextPasser) m_registeredPassers.get(id);
81 Object ctx = contexts.get(id);
82 passer.pushImplicitlyPassedContext(ctx);
83 }
84 }
85 }