2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.config.api;
12 import javax.management.InstanceNotFoundException;
13 import javax.management.ObjectName;
15 public interface ServiceReferenceReadableRegistry {
18 * Lookup object name by fully qualified service interface name and service
21 * @param serviceInterfaceQName
22 * service interface name
24 * service reference name supplied in
25 * {@link org.opendaylight.controller.config
26 * .api .ConfigTransactionController#saveServiceReference(String, String, javax.management.ObjectName)}
27 * @throws java.lang.IllegalArgumentException
30 ObjectName lookupConfigBeanByServiceInterfaceName(String serviceInterfaceQName, String refName);
33 * Get mapping of services to reference names and module object names.
35 Map<String /* serviceInterfaceQName */, Map<String/* refName */, ObjectName>> getServiceMapping();
38 * Get current mapping between reference names and module object names for given
39 * service interface name.
41 * @param serviceInterfaceQName
42 * service interface name
43 * @throws IllegalArgumentException
44 * if there is a mismatch between serviceInterfaceName and
47 Map<String /* refName */, ObjectName> lookupServiceReferencesByServiceInterfaceName(String serviceInterfaceQName);
50 * Find all available service interface names of a module.
54 * @throws InstanceNotFoundException
55 * if search did not find exactly one instance
57 Set<String> lookupServiceInterfaceNames(ObjectName objectName) throws InstanceNotFoundException;
60 * Get the name of the service interface.
63 * service interface namespace
65 * service interface local name
66 * @return fully qualified name needed by all other service reference mapping
68 * @throws java.lang.IllegalArgumentException
69 * if namespace or localName is not found
71 String getServiceInterfaceName(String namespace, String localName);
74 * Get the reference to that service.
76 * @return ObjectName with type=Service that was created using
77 * {@link org.opendaylight.controller
78 * .config .api.ServiceReferenceWritableRegistry#saveServiceReference(String,
79 * String, javax.management.ObjectName)}
81 ObjectName getServiceReference(String serviceInterfaceQName, String refName) throws InstanceNotFoundException;
83 void checkServiceReferenceExists(ObjectName objectName) throws InstanceNotFoundException;