Merge "Do not return null when no RPC is registered"
authorTony Tkacik <ttkacik@cisco.com>
Thu, 30 Jan 2014 16:15:35 +0000 (16:15 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Thu, 30 Jan 2014 16:15:35 +0000 (16:15 +0000)
code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/RuntimeGeneratedMappingServiceImpl.xtend
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/BindingIndependentMappingService.java

index 6fc4a815d61409f110f4c52f58a7550010d3cab6..04d66dcb89acf9f2283a8e43907a16951b529ad8 100644 (file)
@@ -12,6 +12,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext
 import org.opendaylight.yangtools.yang.model.api.SchemaServiceListener
 import org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl
 import java.util.Map
+import java.util.Collections
 import org.opendaylight.yangtools.sal.binding.model.api.Type
 import org.opendaylight.yangtools.sal.binding.model.api.type.builder.GeneratedTypeBuilder
 import org.opendaylight.yangtools.yang.model.api.SchemaNode
@@ -106,8 +107,8 @@ class RuntimeGeneratedMappingServiceImpl implements BindingIndependentMappingSer
             val namespace = BindingGeneratorUtil.moduleNamespaceToPackageName(module);
 
             if(!module.rpcs.empty) {
-            val rpcs = FluentIterable.from(module.rpcs).transform[QName].toSet
-            val serviceClass = new ReferencedTypeImpl(namespace,BindingGeneratorUtil.parseToClassName(module.name)+"Service");
+                val rpcs = FluentIterable.from(module.rpcs).transform[QName].toSet
+                val serviceClass = new ReferencedTypeImpl(namespace,BindingGeneratorUtil.parseToClassName(module.name)+"Service");
                 serviceTypeToRpc.put(serviceClass,rpcs);
             }
 
@@ -268,7 +269,11 @@ class RuntimeGeneratedMappingServiceImpl implements BindingIndependentMappingSer
     }
 
     override getRpcQNamesFor(Class<? extends RpcService> service) {
-        return serviceTypeToRpc.get(new ReferencedTypeImpl(service.package.name,service.simpleName));
+        var serviceRef = serviceTypeToRpc.get(new ReferencedTypeImpl(service.package.name, service.simpleName))
+        if (serviceRef == null) {
+            serviceRef = Collections.emptySet()
+        }
+        return serviceRef
     }
 
     private def void getSchemaWithRetry(Type type) {
index 49187ce43f6a5a1af03336c2a1dbbda958157a92..4e49bfd2d49faccfedce95add4145abd73d21582 100644 (file)
@@ -32,6 +32,12 @@ public interface BindingIndependentMappingService {
 
     InstanceIdentifier<?> fromDataDom(org.opendaylight.yangtools.yang.data.api.InstanceIdentifier entry)  throws DeserializationException;
 
+    /**
+     * Returns the list of currently-known QNames for instances of a service.
+     *
+     * @param service RPC service
+     * @return List of QNames. The user may not modify this list.
+     */
     Set<QName> getRpcQNamesFor(Class<? extends RpcService> service);
 
     DataContainer dataObjectFromDataDom(Class<? extends DataContainer> inputClass, CompositeNode domInput);