X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fconnect%2Fnetconf%2Futil%2FNodeContainerProxy.java;h=23e21370260e8fbc40dd1a37998fc8b574bff9f8;hb=2727bea09c83646b6cbd2ef9672d0b7f6cf3b22f;hp=1896e69f325aee65946e264499b1022c2e696f9e;hpb=c231099ee1cf768de3002e8a290befa172150b7a;p=controller.git diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/util/NodeContainerProxy.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/util/NodeContainerProxy.java index 1896e69f32..23e2137026 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/util/NodeContainerProxy.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/util/NodeContainerProxy.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.sal.connect.netconf.util; +import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import com.google.common.collect.Sets; @@ -27,26 +28,36 @@ import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.opendaylight.yangtools.yang.model.api.UsesNode; -class NodeContainerProxy implements ContainerSchemaNode { +/** + * Simple proxy for container like schema nodes, where user provides a collection of children schema nodes + */ +public final class NodeContainerProxy implements ContainerSchemaNode { private final Map childNodes; private final QName qName; + private final Set availableAugmentations; - public NodeContainerProxy(final QName qName, final Map childNodes) { + public NodeContainerProxy(final QName qName, final Map childNodes, final Set availableAugmentations) { + this.availableAugmentations = availableAugmentations; this.childNodes = Preconditions.checkNotNull(childNodes, "childNodes"); - this.qName = Preconditions.checkNotNull(qName, "qName"); + this.qName = qName; } public NodeContainerProxy(final QName qName, final Collection childNodes) { - this(qName, asMap(childNodes)); + this(qName, asMap(childNodes), Collections.emptySet()); + } + + public NodeContainerProxy(final QName qName, final Collection childNodes, final Set availableAugmentations) { + this(qName, asMap(childNodes), availableAugmentations); } private static Map asMap(final Collection childNodes) { - final Map mapped = Maps.newHashMap(); - for (final DataSchemaNode childNode : childNodes) { - mapped.put(childNode.getQName(), childNode); - } - return mapped; + return Maps.uniqueIndex(childNodes, new Function() { + @Override + public QName apply(final DataSchemaNode input) { + return input.getQName(); + } + }); } @Override @@ -86,7 +97,7 @@ class NodeContainerProxy implements ContainerSchemaNode { @Override public Set getAvailableAugmentations() { - throw new UnsupportedOperationException(); + return availableAugmentations; } @Override @@ -138,4 +149,4 @@ class NodeContainerProxy implements ContainerSchemaNode { public List getUnknownSchemaNodes() { return Collections.emptyList(); } -} +} \ No newline at end of file