blob: 7fecbc32ac639d2001834dee03208e40c1dc49bc [file] [log] [blame]
tom0eb04ca2014-08-25 14:34:51 -07001package org.onlab.osgi;
2
3import com.google.common.collect.ClassToInstanceMap;
4import com.google.common.collect.MutableClassToInstanceMap;
5
6/**
7 * Service directory implementation suitable for testing.
8 */
Ray Milkey5154ec32014-10-22 10:51:18 -07009@SuppressWarnings("unchecked")
tom0eb04ca2014-08-25 14:34:51 -070010public class TestServiceDirectory implements ServiceDirectory {
11
12 private ClassToInstanceMap<Object> services = MutableClassToInstanceMap.create();
13
14 @Override
15 public <T> T get(Class<T> serviceClass) {
16 return services.getInstance(serviceClass);
17 }
18
19 /**
20 * Adds a new service to the directory.
21 *
22 * @param serviceClass service class
23 * @param service service instance
24 * @return self
25 */
26 public TestServiceDirectory add(Class serviceClass, Object service) {
27 services.putInstance(serviceClass, service);
28 return this;
29 }
30
31}