X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fapi%2Fschema%2FMapNode.java;h=d48f2b8323a852daa8a002a1604cb831e3a87329;hb=ce2dacd877878d47df97c524f2307f0d2b393163;hp=eab5a121dee135263531de9e6546ac74f9844e83;hpb=a3dec43333e3b5006b6191cc07128b72d182dcea;p=yangtools.git diff --git a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/MapNode.java b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/MapNode.java index eab5a121de..d48f2b8323 100644 --- a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/MapNode.java +++ b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/MapNode.java @@ -7,24 +7,49 @@ */ package org.opendaylight.yangtools.yang.data.api.schema; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.NodeIdentifier; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.NodeIdentifierWithPredicates; +import com.google.common.annotations.Beta; +import java.util.Collection; +import java.util.Map; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; /** - * Containment node, which contains {@link MapEntryNode} of the same type. - * - * This node maps to the list node in YANG schema. + * Containment node, which contains {@link MapEntryNode} of the same type, which may be quickly retrieved using a key. * + *

+ * This node maps to the list node in YANG schema, schema and semantics of this node, its children and key construction + * is defined by YANG {@code list} statement and its {@code key} and {@code ordered-by} substatements. */ -public interface MapNode extends // - MixinNode, - DataContainerChild>, - NormalizedNodeContainer { +public interface MapNode + extends DistinctNodeContainer, DataContainerChild, MixinNode { + @Override + Class contract(); @Override - public NodeIdentifier getIdentifier(); + NodeIdentifier getIdentifier(); + /** + * Return a {@link Map} view of this node. Note that the iteration order of the returned is map is not defined in + * this interface. + * + * @return Map view of this node. + */ + @Beta + @NonNull Map asMap(); + @Override + default Collection<@NonNull MapEntryNode> body() { + return asMap().values(); + } + @Override + default int size() { + return asMap().size(); + } + @Override + default boolean isEmpty() { + return asMap().isEmpty(); + } }