X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fbinding%2Fimpl%2FBindingDOMMountPointListenerAdapter.java;h=6861ff9b3cae870b9f06eb6b5b6f175973e8d760;hb=3fe96f65938e25effd0ee164a86cb3fb6af2fca5;hp=5698156934e398624b71838dcb990fff39db6c87;hpb=0dcdc14a4ff38b39fed0d07658941a09a4c043fd;p=controller.git diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMMountPointListenerAdapter.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMMountPointListenerAdapter.java index 5698156934..6861ff9b3c 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMMountPointListenerAdapter.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMMountPointListenerAdapter.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.md.sal.binding.impl; +import com.google.common.base.Optional; import org.opendaylight.controller.md.sal.binding.api.MountPointService.MountPointListener; import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService; import org.opendaylight.controller.sal.core.api.mount.MountProvisionListener; @@ -16,13 +17,15 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.impl.codec.DeserializationException; -final class BindingDOMMountPointListenerAdapter implements ListenerRegistration, MountProvisionListener { +final class BindingDOMMountPointListenerAdapter + implements ListenerRegistration, MountProvisionListener { private final T listener; private final ListenerRegistration registration; private final BindingToNormalizedNodeCodec codec; - public BindingDOMMountPointListenerAdapter(final T listener, final BindingToNormalizedNodeCodec codec, final DOMMountPointService mountService) { + BindingDOMMountPointListenerAdapter(final T listener, final BindingToNormalizedNodeCodec codec, + final DOMMountPointService mountService) { this.listener = listener; this.codec = codec; this.registration = mountService.registerProvisionListener(this); @@ -41,21 +44,33 @@ final class BindingDOMMountPointListenerAdapter im @Override public void onMountPointCreated(final YangInstanceIdentifier path) { try { - final InstanceIdentifier bindingPath = codec.toBinding(path).get(); + final InstanceIdentifier bindingPath = toBinding(path); listener.onMountPointCreated(bindingPath); } catch (final DeserializationException e) { - BindingDOMMountPointServiceAdapter.LOG.error("Unable to translate mountPoint path {}. Ommiting event.",path,e); + BindingDOMMountPointServiceAdapter.LOG.error("Unable to translate mountPoint path {}. Omitting event.", + path, e); } } + private InstanceIdentifier toBinding(final YangInstanceIdentifier path) + throws DeserializationException { + final Optional> instanceIdentifierOptional = codec.toBinding(path); + if (instanceIdentifierOptional.isPresent()) { + return instanceIdentifierOptional.get(); + } else { + throw new DeserializationException("Deserialization unsuccessful, " + instanceIdentifierOptional); + } + } + @Override public void onMountPointRemoved(final YangInstanceIdentifier path) { try { - final InstanceIdentifier bindingPath = codec.toBinding(path).get(); + final InstanceIdentifier bindingPath = toBinding(path); listener.onMountPointRemoved(bindingPath); } catch (final DeserializationException e) { - BindingDOMMountPointServiceAdapter.LOG.error("Unable to translate mountPoint path {}. Ommiting event.",path,e); + BindingDOMMountPointServiceAdapter.LOG.error("Unable to translate mountPoint path {}. Omitting event.", + path, e); } } -} \ No newline at end of file +}