1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.commons.core.config;
17
18
19 import java.util.HashMap;
20 import java.util.Map;
21 import java.util.stream.Collectors;
22
23
24
25
26
27
28
29
30
31 public class SimpleRegistry implements Registry {
32
33 private Map<String, Object> beans = new HashMap<>();
34
35 @Override
36 public Object bean(String name) {
37 return beans.get(name);
38 }
39
40 @SuppressWarnings("unchecked")
41 @Override
42 public <T> T bean(Class<T> requiredType) {
43 for (Object value : beans.values()) {
44 if (requiredType.isAssignableFrom(value.getClass())) return (T) value;
45 }
46 return null;
47 }
48
49 @SuppressWarnings("unchecked")
50 @Override
51 public <T> Map<String, T> beans(Class<T> requiredType) {
52 Map<String, T> result = beans.entrySet().stream()
53 .filter(entry -> requiredType.isAssignableFrom(entry.getValue().getClass()))
54 .collect(Collectors.toMap(Map.Entry::getKey, p -> (T) p.getValue()));
55 return result;
56 }
57
58 public Object register(String name, Object object) {
59 return beans.put(name, object);
60 }
61
62 public void clear() {
63 beans.clear();
64 }
65 }