Add NormalizedNodeContainer.size()
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / schema / builder / impl / ImmutableOrderedMapNodeBuilder.java
index 22c8cc945c0ee747cf7d616bf61aba9882f54cf0..178525be51563cfb83c077202cee229fc8623342 100644 (file)
@@ -12,7 +12,7 @@ import java.util.Collection;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Optional;
-import org.opendaylight.yangtools.concepts.Immutable;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.util.UnmodifiableCollection;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
@@ -51,15 +51,15 @@ public class ImmutableOrderedMapNodeBuilder implements CollectionNodeBuilder<Map
         this.dirty = true;
     }
 
-    public static CollectionNodeBuilder<MapEntryNode, OrderedMapNode> create() {
+    public static @NonNull CollectionNodeBuilder<MapEntryNode, OrderedMapNode> create() {
         return new ImmutableOrderedMapNodeBuilder();
     }
 
-    public static CollectionNodeBuilder<MapEntryNode, OrderedMapNode> create(final int sizeHint) {
+    public static @NonNull CollectionNodeBuilder<MapEntryNode, OrderedMapNode> create(final int sizeHint) {
         return new ImmutableOrderedMapNodeBuilder(sizeHint);
     }
 
-    public static CollectionNodeBuilder<MapEntryNode, OrderedMapNode> create(final MapNode node) {
+    public static @NonNull CollectionNodeBuilder<MapEntryNode, OrderedMapNode> create(final MapNode node) {
         if (!(node instanceof ImmutableOrderedMapNode)) {
             throw new UnsupportedOperationException(String.format("Cannot initialize from class %s", node.getClass()));
         }
@@ -126,7 +126,7 @@ public class ImmutableOrderedMapNodeBuilder implements CollectionNodeBuilder<Map
 
     protected static final class ImmutableOrderedMapNode
             extends AbstractImmutableNormalizedNode<NodeIdentifier, Collection<MapEntryNode>>
-            implements Immutable, OrderedMapNode {
+            implements OrderedMapNode {
 
         private final Map<NodeIdentifierWithPredicates, MapEntryNode> children;
 
@@ -146,6 +146,11 @@ public class ImmutableOrderedMapNodeBuilder implements CollectionNodeBuilder<Map
             return Iterables.get(children.values(), position);
         }
 
+        @Override
+        public int size() {
+            return children.size();
+        }
+
         @Override
         protected int valueHashCode() {
             return children.hashCode();