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=bd075d0606b08f3f94982e32d18ecdb468b9830a;hpb=059605a27e8a1280cefa8186a9057144bc281518;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 bd075d0606..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,9 +7,11 @@ */ 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; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; @@ -26,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), Collections.emptySet()); } - public NodeContainerProxy(final QName qName, final Set childNodes) { - this(qName, asMap(childNodes)); + public NodeContainerProxy(final QName qName, final Collection childNodes, final Set availableAugmentations) { + this(qName, asMap(childNodes), availableAugmentations); } - private static Map asMap(final Set childNodes) { - final Map mapped = Maps.newHashMap(); - for (final DataSchemaNode childNode : childNodes) { - mapped.put(childNode.getQName(), childNode); - } - return mapped; + private static Map asMap(final Collection childNodes) { + return Maps.uniqueIndex(childNodes, new Function() { + @Override + public QName apply(final DataSchemaNode input) { + return input.getQName(); + } + }); } @Override @@ -85,7 +97,7 @@ class NodeContainerProxy implements ContainerSchemaNode { @Override public Set getAvailableAugmentations() { - throw new UnsupportedOperationException(); + return availableAugmentations; } @Override @@ -137,4 +149,4 @@ class NodeContainerProxy implements ContainerSchemaNode { public List getUnknownSchemaNodes() { return Collections.emptyList(); } -} +} \ No newline at end of file