X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Fnetconf-notifications-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fnotifications%2Fimpl%2Fops%2FNotificationsTransformUtil.java;h=d2fdaaddb77ccef5627e0cae32265b7da397c3aa;hb=e1352a34274092cde87343386655fe984e45df0e;hp=0ac484920320fe1383fda1d6906e97b2ae5a7a09;hpb=d16cbce331f99a5b0eb7bdd181489973b6d50c9e;p=netconf.git diff --git a/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/NotificationsTransformUtil.java b/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/NotificationsTransformUtil.java index 0ac4849203..d2fdaaddb7 100644 --- a/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/NotificationsTransformUtil.java +++ b/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/NotificationsTransformUtil.java @@ -10,25 +10,25 @@ package org.opendaylight.netconf.notifications.impl.ops; import com.google.common.base.Optional; import com.google.common.base.Preconditions; -import com.google.common.base.Predicate; import com.google.common.collect.Collections2; import com.google.common.collect.Iterables; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.util.Collections; import java.util.Date; import javassist.ClassPool; import javax.xml.stream.XMLStreamException; import javax.xml.transform.dom.DOMResult; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.mdsal.binding.dom.codec.gen.impl.StreamWriterGenerator; +import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry; +import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext; +import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext; +import org.opendaylight.mdsal.binding.generator.util.JavassistUtils; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.notifications.NetconfNotification; import org.opendaylight.netconf.util.NetconfUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.$YangModuleInfoImpl; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange; -import org.opendaylight.yangtools.binding.data.codec.gen.impl.StreamWriterGenerator; -import org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry; -import org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext; -import org.opendaylight.yangtools.sal.binding.generator.util.BindingRuntimeContext; -import org.opendaylight.yangtools.sal.binding.generator.util.JavassistUtils; +import org.opendaylight.yangtools.yang.binding.Notification; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -47,13 +47,12 @@ public final class NotificationsTransformUtil { static final BindingNormalizedNodeCodecRegistry CODEC_REGISTRY; static final RpcDefinition CREATE_SUBSCRIPTION_RPC; - static final SchemaPath CAPABILITY_CHANGE_SCHEMA_PATH = SchemaPath.create(true, NetconfCapabilityChange.QNAME); - static { final ModuleInfoBackedContext moduleInfoBackedContext = ModuleInfoBackedContext.create(); moduleInfoBackedContext.addModuleInfos(Collections.singletonList($YangModuleInfoImpl.getInstance())); - moduleInfoBackedContext.addModuleInfos(Collections.singletonList(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.$YangModuleInfoImpl.getInstance())); + moduleInfoBackedContext.addModuleInfos(Collections.singletonList(org.opendaylight.yang.gen.v1.urn.ietf.params + .xml.ns.yang.ietf.netconf.notifications.rev120206.$YangModuleInfoImpl.getInstance())); final Optional schemaContextOptional = moduleInfoBackedContext.tryToCreateSchemaContext(); Preconditions.checkState(schemaContextOptional.isPresent()); NOTIFICATIONS_SCHEMA_CTX = schemaContextOptional.get(); @@ -64,41 +63,39 @@ public final class NotificationsTransformUtil { final JavassistUtils javassist = JavassistUtils.forClassPool(ClassPool.getDefault()); CODEC_REGISTRY = new BindingNormalizedNodeCodecRegistry(StreamWriterGenerator.create(javassist)); - CODEC_REGISTRY.onBindingRuntimeContextUpdated(BindingRuntimeContext.create(moduleInfoBackedContext, NOTIFICATIONS_SCHEMA_CTX)); + CODEC_REGISTRY.onBindingRuntimeContextUpdated(BindingRuntimeContext.create(moduleInfoBackedContext, + NOTIFICATIONS_SCHEMA_CTX)); } + @SuppressFBWarnings(value = "NP_NONNULL_PARAM_VIOLATION", justification = "Unrecognised NullableDecl") private static RpcDefinition findCreateSubscriptionRpc() { - return Iterables.getFirst(Collections2.filter(NOTIFICATIONS_SCHEMA_CTX.getOperations(), new Predicate() { - @Override - public boolean apply(final RpcDefinition input) { - return input.getQName().getLocalName().equals(CreateSubscription.CREATE_SUBSCRIPTION); - } - }), null); + return Iterables.getFirst(Collections2.filter(NOTIFICATIONS_SCHEMA_CTX.getOperations(), + input -> input.getQName().getLocalName().equals(CreateSubscription.CREATE_SUBSCRIPTION)), null); } /** - * Transform base notification for capabilities into NetconfNotification + * Transform base notification for capabilities into NetconfNotification. */ - public static NetconfNotification transform(final NetconfCapabilityChange capabilityChange) { - return transform(capabilityChange, Optional.absent()); + public static NetconfNotification transform(final Notification notification, SchemaPath path) { + return transform(notification, Optional.absent(), path); } - public static NetconfNotification transform(final NetconfCapabilityChange capabilityChange, final Date eventTime) { - return transform(capabilityChange, Optional.fromNullable(eventTime)); + public static NetconfNotification transform(final Notification notification, + final Date eventTime, SchemaPath path) { + return transform(notification, Optional.fromNullable(eventTime), path); } - private static NetconfNotification transform(final NetconfCapabilityChange capabilityChange, final Optional eventTime) { - final ContainerNode containerNode = CODEC_REGISTRY.toNormalizedNodeNotification(capabilityChange); + private static NetconfNotification transform(final Notification notification, + final Optional eventTime, SchemaPath path) { + final ContainerNode containerNode = CODEC_REGISTRY.toNormalizedNodeNotification(notification); final DOMResult result = new DOMResult(XmlUtil.newDocument()); try { - NetconfUtil.writeNormalizedNode(containerNode, result, CAPABILITY_CHANGE_SCHEMA_PATH, NOTIFICATIONS_SCHEMA_CTX); - } catch (final XMLStreamException| IOException e) { - throw new IllegalStateException("Unable to serialize " + capabilityChange, e); + NetconfUtil.writeNormalizedNode(containerNode, result, path, NOTIFICATIONS_SCHEMA_CTX); + } catch (final XMLStreamException | IOException e) { + throw new IllegalStateException("Unable to serialize " + notification, e); } final Document node = (Document) result.getNode(); - return eventTime.isPresent() ? - new NetconfNotification(node, eventTime.get()): - new NetconfNotification(node); + return eventTime.isPresent() ? new NetconfNotification(node, eventTime.get()) : new NetconfNotification(node); } }