1 package com.google.code.beanmatchers;
2
3 import java.util.Map;
4 import java.util.concurrent.ConcurrentHashMap;
5
6 class InMemoryValueGeneratorRepository implements ValueGeneratorRepository {
7
8 private final Map<Class, ValueGenerator> valueGenerators =
9 new ConcurrentHashMap<Class, ValueGenerator>();
10
11 public <T> void registerValueGenerator(ValueGenerator<T> generator, Class<T> type) {
12 valueGenerators.put(type, generator);
13 }
14
15 public <T> void registerValueGenerator(
16 ValueGenerator<T> generator, Class<T> type, Class<T> extraType) {
17 registerValueGenerator(generator, type);
18 registerValueGenerator(generator, extraType);
19 }
20
21 @SuppressWarnings("unchecked")
22 public <T> ValueGenerator<T> retrieveValueGenerator(Class<T> type) {
23 return valueGenerators.get(type);
24 }
25 }