1 | |
|
2 | |
|
3 | |
|
4 | |
|
5 | |
|
6 | |
|
7 | |
|
8 | |
|
9 | |
|
10 | |
|
11 | |
|
12 | |
|
13 | |
|
14 | |
|
15 | |
|
16 | |
|
17 | |
package org.apache.commons.inject.impl; |
18 | |
|
19 | |
import java.util.ArrayList; |
20 | |
import java.util.List; |
21 | |
import java.util.Map; |
22 | |
|
23 | |
import org.apache.commons.inject.api.IBinding; |
24 | |
import org.apache.commons.inject.api.IKey; |
25 | |
|
26 | |
public class ImmutableBindingSet extends AbstractBindingSet { |
27 | |
public ImmutableBindingSet(ResolvableBindingSet pResolvableBindings) { |
28 | 9 | super(pResolvableBindings.map); |
29 | 9 | } |
30 | |
|
31 | |
<T> IBinding<T> getBinding(IKey<T> pKey) { |
32 | 27 | final ReducedKey<T> rkey = new ReducedKey<T>(pKey.getType(), pKey.getName()); |
33 | 27 | final List<BindingAndKey<?>> list = map.get(rkey); |
34 | 27 | if (list != null) { |
35 | 25 | for (BindingAndKey<?> bak : list) { |
36 | 25 | if (isMatching(pKey, bak.getKey())) { |
37 | |
@SuppressWarnings("unchecked") |
38 | 24 | final IBinding<T> binding = (IBinding<T>) bak.getBinding(); |
39 | 24 | return binding; |
40 | |
} |
41 | |
} |
42 | |
} |
43 | 3 | return null; |
44 | |
} |
45 | |
|
46 | |
<T> void add(ReducedKey<T> pRKey, MappedKey<T> pMKey, IBinding<T> pBinding) { |
47 | 0 | final List<BindingAndKey<?>> list = findOrCreateList(pRKey); |
48 | 0 | final BindingAndKey<T> bak = new BindingAndKey<T>(pBinding, pMKey); |
49 | 0 | list.add(bak); |
50 | 0 | } |
51 | |
|
52 | |
Iterable<IBinding<?>> getAllBindings() { |
53 | 9 | final List<IBinding<?>> list = new ArrayList<IBinding<?>>(); |
54 | 9 | for (Map.Entry<ReducedKey<?>,List<BindingAndKey<?>>> en : map.entrySet()) { |
55 | 45 | final List<BindingAndKey<?>> baklist = en.getValue(); |
56 | 45 | for (BindingAndKey<?> bak : baklist) { |
57 | 59 | list.add(bak.getBinding()); |
58 | |
} |
59 | 45 | } |
60 | 9 | return list; |
61 | |
} |
62 | |
} |