import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterators;
import java.lang.reflect.Method;
+import java.time.Instant;
import java.util.AbstractMap.SimpleEntry;
import java.util.Collection;
import java.util.HashSet;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+import javax.inject.Singleton;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTree;
* <p>
* NOTE: this class is non-final to allow controller adapter migration without duplicated code.
*/
+@Singleton
public class BindingToNormalizedNodeCodec implements BindingCodecTreeFactory,
BindingNormalizedNodeSerializer, SchemaContextListener, AutoCloseable {
private final FutureSchema futureSchema;
private ListenerRegistration<?> listenerRegistration;
+ @Inject
public BindingToNormalizedNodeCodec(final ClassLoadingStrategy classLoadingStrategy,
final BindingNormalizedNodeCodecRegistry codecRegistry) {
this(classLoadingStrategy, codecRegistry, false);
return codecRegistry.fromNormalizedNodeNotification(path, data);
}
+ @Override
+ public final Notification fromNormalizedNodeNotification(final SchemaPath path, final ContainerNode data,
+ final Instant eventInstant) {
+ return codecRegistry.fromNormalizedNodeNotification(path, data, eventInstant);
+ }
+
@Override
public final DataObject fromNormalizedNodeRpcData(final SchemaPath path, final ContainerNode data) {
return codecRegistry.fromNormalizedNodeRpcData(path, data);
}
@Override
+ @PreDestroy
public void close() {
if (listenerRegistration != null) {
listenerRegistration.close();
private Method findRpcMethod(final Class<? extends RpcService> key, final RpcDefinition rpcDef)
throws NoSuchMethodException {
- final String methodName = BindingMapping.getMethodName(rpcDef.getQName());
+ final String methodName = BindingMapping.getRpcMethodName(rpcDef.getQName());
final Class<?> inputClz = runtimeContext().getClassForSchema(rpcDef.getInput());
return key.getMethod(methodName, inputClz);
}