From: Robert Varga Date: Fri, 27 Feb 2015 18:17:57 +0000 (+0100) Subject: DataContainerNodeBuilder should take a Collection X-Git-Tag: release/lithium~271^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=74eba094499aca8e24a4d8c5fb4acdfbf992d580;hp=9dbd7b3c9e93d964fd97a95748b5142cff369de1;p=yangtools.git DataContainerNodeBuilder should take a Collection List is too specific a collection to pass down into the builder. We care only for it be Iterable, so a Collection is a reasonable middle ground. Change-Id: Ifa3b455df76e7abd4ede387f67d2d8fcabd41545 Signed-off-by: Robert Varga --- diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriter.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriter.java index 3ac6f32b08..c97819bb38 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriter.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriter.java @@ -8,10 +8,9 @@ package org.opendaylight.yangtools.yang.data.impl.schema; import com.google.common.base.Preconditions; -import java.io.IOException; import java.util.ArrayDeque; +import java.util.Collection; import java.util.Deque; -import java.util.List; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -263,7 +262,7 @@ public class ImmutableNormalizedNodeStreamWriter implements NormalizedNodeStream } @Override - public NormalizedNodeContainerBuilder withValue(final List value) { + public NormalizedNodeContainerBuilder withValue(final Collection value) { throw new UnsupportedOperationException(); } @@ -286,9 +285,7 @@ public class ImmutableNormalizedNodeStreamWriter implements NormalizedNodeStream } @Override - public void close() throws IOException { - // TODO Auto-generated method stub - + public void close() { + // no-op } - } diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/CollectionNodeBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/CollectionNodeBuilder.java index 1fa9650212..7e42a3e045 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/CollectionNodeBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/CollectionNodeBuilder.java @@ -7,8 +7,7 @@ */ package org.opendaylight.yangtools.yang.data.impl.schema.builder.api; -import java.util.List; - +import java.util.Collection; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; @@ -18,7 +17,7 @@ public interface CollectionNodeBuilder, R extends extends NormalizedNodeContainerBuilder { @Override - CollectionNodeBuilder withValue(List value); + CollectionNodeBuilder withValue(Collection value); @Override CollectionNodeBuilder withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier nodeIdentifier); diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/DataContainerNodeAttrBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/DataContainerNodeAttrBuilder.java index dd950564a3..019f8634e3 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/DataContainerNodeAttrBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/DataContainerNodeAttrBuilder.java @@ -7,8 +7,7 @@ */ package org.opendaylight.yangtools.yang.data.impl.schema.builder.api; -import java.util.List; - +import java.util.Collection; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode; @@ -18,10 +17,11 @@ public interface DataContainerNodeAttrBuilder> { @Override - DataContainerNodeAttrBuilder withValue(List> value); + DataContainerNodeAttrBuilder withValue(Collection> value); @Override DataContainerNodeAttrBuilder withNodeIdentifier(I nodeIdentifier); + @Override DataContainerNodeAttrBuilder withChild(DataContainerChild child); } diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/DataContainerNodeBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/DataContainerNodeBuilder.java index a7eb3742f4..fd33b498df 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/DataContainerNodeBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/DataContainerNodeBuilder.java @@ -7,8 +7,7 @@ */ package org.opendaylight.yangtools.yang.data.impl.schema.builder.api; -import java.util.List; - +import java.util.Collection; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; @@ -18,7 +17,7 @@ public interface DataContainerNodeBuilder, R> { @Override - DataContainerNodeBuilder withValue(List> value); + DataContainerNodeBuilder withValue(Collection> value); @Override DataContainerNodeBuilder withNodeIdentifier(I nodeIdentifier); diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/ListNodeBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/ListNodeBuilder.java index 5844f2ee30..51041f1e57 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/ListNodeBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/ListNodeBuilder.java @@ -7,9 +7,8 @@ */ package org.opendaylight.yangtools.yang.data.impl.schema.builder.api; -import java.util.List; +import java.util.Collection; import java.util.Map; - import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; @@ -22,7 +21,7 @@ public interface ListNodeBuilder ListNodeBuilder withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier nodeIdentifier); @Override - ListNodeBuilder withValue(List> value); + ListNodeBuilder withValue(Collection> value); @Override ListNodeBuilder withChild(LeafSetEntryNode child); diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/NormalizedNodeContainerBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/NormalizedNodeContainerBuilder.java index 2409011f67..4adcee1add 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/NormalizedNodeContainerBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/api/NormalizedNodeContainerBuilder.java @@ -1,18 +1,23 @@ +/* + * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ package org.opendaylight.yangtools.yang.data.impl.schema.builder.api; -import java.util.List; - +import java.util.Collection; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -public interface NormalizedNodeContainerBuilder,P extends NormalizedNode> -extends NormalizedNodeBuilder,P>{ +public interface NormalizedNodeContainerBuilder,P extends NormalizedNode> extends NormalizedNodeBuilder,P>{ @Override NormalizedNodeContainerBuilder withNodeIdentifier(K nodeIdentifier); @Override - NormalizedNodeContainerBuilder withValue(List value); + NormalizedNodeContainerBuilder withValue(Collection value); NormalizedNodeContainerBuilder addChild(CV child); NormalizedNodeContainerBuilder removeChild(CK key); diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/AbstractImmutableDataContainerNodeAttrBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/AbstractImmutableDataContainerNodeAttrBuilder.java index e6f081b3d6..218b3a3f4e 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/AbstractImmutableDataContainerNodeAttrBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/AbstractImmutableDataContainerNodeAttrBuilder.java @@ -7,10 +7,9 @@ */ package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl; +import java.util.Collection; import java.util.Collections; -import java.util.List; import java.util.Map; - import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; @@ -46,7 +45,7 @@ abstract class AbstractImmutableDataContainerNodeAttrBuilder withValue(final List> value) { + public DataContainerNodeAttrBuilder withValue(final Collection> value) { return (DataContainerNodeAttrBuilder) super.withValue(value); } diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/AbstractImmutableDataContainerNodeBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/AbstractImmutableDataContainerNodeBuilder.java index cb50fefc8d..ec2f5ee7bd 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/AbstractImmutableDataContainerNodeBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/AbstractImmutableDataContainerNodeBuilder.java @@ -7,8 +7,8 @@ */ package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl; +import java.util.Collection; import java.util.HashMap; -import java.util.List; import java.util.Map; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; @@ -86,7 +86,7 @@ abstract class AbstractImmutableDataContainerNodeBuilder withValue(final List> value) { + public DataContainerNodeBuilder withValue(final Collection> value) { // TODO Replace or putAll ? for (final DataContainerChild dataContainerChild : value) { withChild(dataContainerChild); diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableLeafSetNodeBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableLeafSetNodeBuilder.java index 71b4bbc760..b4118330e1 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableLeafSetNodeBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableLeafSetNodeBuilder.java @@ -9,9 +9,9 @@ package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl; import com.google.common.base.Optional; import com.google.common.collect.Iterables; +import java.util.Collection; import java.util.Collections; import java.util.HashMap; -import java.util.List; import java.util.Map; import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.util.MapAdaptor; @@ -85,7 +85,7 @@ public class ImmutableLeafSetNodeBuilder implements ListNodeBuilder> withValue(final List> value) { + public ListNodeBuilder> withValue(final Collection> value) { for (final LeafSetEntryNode leafSetEntry : value) { withChild(leafSetEntry); } diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableMapEntryNodeBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableMapEntryNodeBuilder.java index 0b1f58cd02..12f26a39be 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableMapEntryNodeBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableMapEntryNodeBuilder.java @@ -7,8 +7,8 @@ */ package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl; +import java.util.Collection; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -70,7 +70,7 @@ public class ImmutableMapEntryNodeBuilder extends AbstractImmutableDataContainer @Override - public DataContainerNodeAttrBuilder withValue(final List> value) { + public DataContainerNodeAttrBuilder withValue(final Collection> value) { fillQnames(value, childrenQNamesToPaths); return super.withValue(value); } diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableMapNodeBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableMapNodeBuilder.java index 95d9aa2b81..849fc6b37d 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableMapNodeBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableMapNodeBuilder.java @@ -9,8 +9,8 @@ package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl; import com.google.common.base.Optional; import com.google.common.collect.Iterables; +import java.util.Collection; import java.util.HashMap; -import java.util.List; import java.util.Map; import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.util.MapAdaptor; @@ -70,7 +70,7 @@ public class ImmutableMapNodeBuilder implements CollectionNodeBuilder withValue(final List value) { + public CollectionNodeBuilder withValue(final Collection value) { // TODO replace or putAll ? for (final MapEntryNode mapEntryNode : value) { withChild(mapEntryNode); diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableOrderedLeafSetNodeBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableOrderedLeafSetNodeBuilder.java index c8abde743a..81e8ae5d81 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableOrderedLeafSetNodeBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableOrderedLeafSetNodeBuilder.java @@ -7,11 +7,12 @@ */ package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl; +import com.google.common.base.Optional; +import com.google.common.collect.Iterables; +import java.util.Collection; import java.util.Collections; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; - import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -24,9 +25,6 @@ import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.ListNodeBuil import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeContainerBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.nodes.AbstractImmutableNormalizedNode; -import com.google.common.base.Optional; -import com.google.common.collect.Iterables; - public class ImmutableOrderedLeafSetNodeBuilder implements ListNodeBuilder> { private Map> value; @@ -91,7 +89,7 @@ public class ImmutableOrderedLeafSetNodeBuilder implements ListNodeBuilder> withValue(final List> value) { + public ListNodeBuilder> withValue(final Collection> value) { checkDirty(); for (final LeafSetEntryNode leafSetEntry : value) { withChild(leafSetEntry); @@ -99,7 +97,6 @@ public class ImmutableOrderedLeafSetNodeBuilder implements ListNodeBuilder> withChildValue(final T value, final Map attributes) { final ImmutableLeafSetEntryNodeBuilder b = ImmutableLeafSetEntryNodeBuilder.create(); diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableOrderedMapNodeBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableOrderedMapNodeBuilder.java index 2746355866..fb413da5c4 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableOrderedMapNodeBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableOrderedMapNodeBuilder.java @@ -9,8 +9,8 @@ package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl; import com.google.common.base.Optional; import com.google.common.collect.Iterables; +import java.util.Collection; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -83,7 +83,7 @@ public class ImmutableOrderedMapNodeBuilder implements CollectionNodeBuilder withValue(final List value) { + public CollectionNodeBuilder withValue(final Collection value) { // TODO replace or putAll ? for (final MapEntryNode mapEntryNode : value) { withChild(mapEntryNode); diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableUnkeyedListNodeBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableUnkeyedListNodeBuilder.java index 425162fca6..ec4527da35 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableUnkeyedListNodeBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableUnkeyedListNodeBuilder.java @@ -9,6 +9,7 @@ package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; +import java.util.Collection; import java.util.Collections; import java.util.LinkedList; import java.util.List; @@ -78,7 +79,7 @@ public class ImmutableUnkeyedListNodeBuilder implements CollectionNodeBuilder withValue(final List value) { + public CollectionNodeBuilder withValue(final Collection value) { // TODO replace or putAll ? for (final UnkeyedListEntryNode UnkeyedListEntryNode : value) { withChild(UnkeyedListEntryNode);