*/
package org.opendaylight.yangtools.yang.data.api.schema;
+import java.util.Collection;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
/**
*
* Data instance of <code>augment</code> assiociated with parent node.
- *
+ *
* Augmentation is addition of subtree defined by other external YANG Model and
* is schema for subtree is described by instance of {@link AugmentationSchema}
* associated with parent node of this node.
public interface AugmentationNode extends //
MixinNode, //
DataContainerNode<AugmentationIdentifier>,
- DataContainerChild<YangInstanceIdentifier.AugmentationIdentifier, Iterable<DataContainerChild<? extends PathArgument, ?>>> {
+ DataContainerChild<YangInstanceIdentifier.AugmentationIdentifier, Collection<DataContainerChild<? extends PathArgument, ?>>> {
/**
* Gets identifier of augmentation node
- *
- * Returned identifier of augmentation node contains all possible
+ *
+ * Returned identifier of augmentation node contains all possible
* direct child QNames.
- *
+ *
* This is sufficient to identify instance of augmentation,
* since RFC6020 states that <code>augment</code> that augment
- * statement must not add multiple nodes from same namespace
+ * statement must not add multiple nodes from same namespace
* / module
* to the target node.
- *
+ *
* @return Identifier which uniquelly identifies augmentation in particular subtree.
- *
+ *
*/
@Override
public AugmentationIdentifier getIdentifier();
*/
package org.opendaylight.yangtools.yang.data.api.schema;
+import java.util.Collection;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
public interface ChoiceNode extends //
MixinNode, //
DataContainerNode<NodeIdentifier>,
- DataContainerChild<NodeIdentifier, Iterable<DataContainerChild<? extends PathArgument, ?>>> {
+ DataContainerChild<NodeIdentifier, Collection<DataContainerChild<? extends PathArgument, ?>>> {
}
*/
package org.opendaylight.yangtools.yang.data.api.schema;
+import java.util.Collection;
import org.opendaylight.yangtools.yang.data.api.AttributesContainer;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
/**
* Data subtree with cardinality 0..1 in the context of parent node
- *
+ *
* Node which does not have value but contains valid {@link DataContainerChild} nodes.
- *
+ *
* Schema of this node is described by instance of {@link org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode}.
- *
+ *
*/
public interface ContainerNode extends //
AttributesContainer,
DataContainerNode<NodeIdentifier>,
- DataContainerChild<NodeIdentifier, Iterable<DataContainerChild<? extends PathArgument, ?>>> {
+ DataContainerChild<NodeIdentifier, Collection<DataContainerChild<? extends PathArgument, ?>>> {
}
*/
package org.opendaylight.yangtools.yang.data.api.schema;
+import java.util.Collection;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
/**
* @return Iteration of all child nodes
*/
@Override
- Iterable<DataContainerChild<? extends PathArgument, ?>> getValue();
+ Collection<DataContainerChild<? extends PathArgument, ?>> getValue();
}
*/
package org.opendaylight.yangtools.yang.data.api.schema;
+import java.util.Collection;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue;
*/
public interface LeafSetNode<T> extends
MixinNode, //
- DataContainerChild<NodeIdentifier, Iterable<LeafSetEntryNode<T>>>, //
+ DataContainerChild<NodeIdentifier, Collection<LeafSetEntryNode<T>>>, //
NormalizedNodeContainer<NodeIdentifier, NodeWithValue,LeafSetEntryNode<T>> {
}
*/
package org.opendaylight.yangtools.yang.data.api.schema;
+import java.util.Collection;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
*/
public interface MapNode extends //
MixinNode,
- DataContainerChild<NodeIdentifier, Iterable<MapEntryNode>>,
+ DataContainerChild<NodeIdentifier, Collection<MapEntryNode>>,
NormalizedNodeContainer<NodeIdentifier, NodeIdentifierWithPredicates, MapEntryNode> {
}
*/
package org.opendaylight.yangtools.yang.data.api.schema;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
-
import com.google.common.base.Optional;
+import java.util.Collection;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
/**
* Node which is not leaf, but has child {@link NormalizedNode}s as its valzue.
- *
- *
+ *
+ *
* NormalizedNodeContainer does not have a value, but it has a child
* nodes. Definition of possible and valid child nodes is introduced
* in subclasses of this interface.
- *
+ *
* This interface should not be used directly, but rather use of of derived subinterfaces
* such as {@link DataContainerNode}, {@link MapNode}, {@link LeafSetNode}.
- *
+ *
* @param <I>
* Node Identifier type
* @param <K>
* Child Node type
*/
public interface NormalizedNodeContainer<I extends PathArgument, K extends PathArgument, V extends NormalizedNode<? extends K, ?>>
- extends NormalizedNode<I, Iterable<V>> {
+ extends NormalizedNode<I, Collection<V>> {
@Override
I getIdentifier();
/**
* Returns immutable iteration of child nodes of this node.
- *
+ *
*/
@Override
- Iterable<V> getValue();
+ Collection<V> getValue();
/**
* Returns child node identified by provided key.
- *
+ *
* @param child
* Path argument identifying child node
* @return Optional with child node if child exists.
*/
package org.opendaylight.yangtools.yang.data.api.schema;
+import java.util.Collection;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
/**
*
* @param <V> child type
*/
-public interface OrderedNodeContainer<V extends NormalizedNode<?, ?>> extends MixinNode, NormalizedNode<NodeIdentifier, Iterable<V>> {
+public interface OrderedNodeContainer<V extends NormalizedNode<?, ?>> extends MixinNode, NormalizedNode<NodeIdentifier, Collection<V>> {
/**
* Returns child node by position
*/
package org.opendaylight.yangtools.yang.data.api.schema;
+import java.util.Collection;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
*
*/
public interface UnkeyedListNode extends
- DataContainerChild<NodeIdentifier, Iterable<UnkeyedListEntryNode>>,
+ DataContainerChild<NodeIdentifier, Collection<UnkeyedListEntryNode>>,
OrderedNodeContainer<UnkeyedListEntryNode> {
}
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.Map;
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.util.MapAdaptor;
+import org.opendaylight.yangtools.util.UnmodifiableCollection;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
}
protected final static class ImmutableLeafSetNode<T> extends
- AbstractImmutableNormalizedValueNode<YangInstanceIdentifier.NodeIdentifier, Iterable<LeafSetEntryNode<T>>> implements
+ AbstractImmutableNormalizedValueNode<YangInstanceIdentifier.NodeIdentifier, Collection<LeafSetEntryNode<T>>> implements
Immutable, LeafSetNode<T> {
private final Map<YangInstanceIdentifier.NodeWithValue, LeafSetEntryNode<T>> children;
ImmutableLeafSetNode(final YangInstanceIdentifier.NodeIdentifier nodeIdentifier,
final Map<YangInstanceIdentifier.NodeWithValue, LeafSetEntryNode<T>> children) {
- super(nodeIdentifier, Iterables.unmodifiableIterable(children.values()));
+ super(nodeIdentifier, UnmodifiableCollection.create(children.values()));
this.children = children;
}
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.Map;
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.util.MapAdaptor;
+import org.opendaylight.yangtools.util.UnmodifiableCollection;
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;
return withoutChild(key);
}
- protected static final class ImmutableMapNode extends AbstractImmutableNormalizedNode<YangInstanceIdentifier.NodeIdentifier, Iterable<MapEntryNode>> implements Immutable,MapNode {
+ protected static final class ImmutableMapNode extends AbstractImmutableNormalizedNode<YangInstanceIdentifier.NodeIdentifier, Collection<MapEntryNode>> implements Immutable,MapNode {
private final Map<YangInstanceIdentifier.NodeIdentifierWithPredicates, MapEntryNode> children;
}
@Override
- public Iterable<MapEntryNode> getValue() {
- return Iterables.unmodifiableIterable(children.values());
+ public Collection<MapEntryNode> getValue() {
+ return UnmodifiableCollection.create(children.values());
}
@Override
import java.util.LinkedHashMap;
import java.util.Map;
import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.util.UnmodifiableCollection;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
return withChildValue(value, Collections.<QName,String>emptyMap());
}
- protected final static class ImmutableOrderedLeafSetNode<T> extends
- AbstractImmutableNormalizedNode<YangInstanceIdentifier.NodeIdentifier, Iterable<LeafSetEntryNode<T>>> implements
+ protected static final class ImmutableOrderedLeafSetNode<T> extends
+ AbstractImmutableNormalizedNode<YangInstanceIdentifier.NodeIdentifier, Collection<LeafSetEntryNode<T>>> implements
Immutable, OrderedLeafSetNode<T> {
private final Map<YangInstanceIdentifier.NodeWithValue, LeafSetEntryNode<T>> children;
return children.size();
}
- @Override
- public Iterable<LeafSetEntryNode<T>> getValue() {
- return Iterables.unmodifiableIterable(children.values());
- }
+ @Override
+ public Collection<LeafSetEntryNode<T>> getValue() {
+ return UnmodifiableCollection.create(children.values());
+ }
}
@Override
import java.util.LinkedHashMap;
import java.util.Map;
import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.util.UnmodifiableCollection;
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;
return withoutChild(key);
}
- protected static final class ImmutableOrderedMapNode extends AbstractImmutableNormalizedNode<YangInstanceIdentifier.NodeIdentifier, Iterable<MapEntryNode>> implements Immutable,OrderedMapNode {
+ protected static final class ImmutableOrderedMapNode extends AbstractImmutableNormalizedNode<YangInstanceIdentifier.NodeIdentifier, Collection<MapEntryNode>> implements Immutable,OrderedMapNode {
private final Map<YangInstanceIdentifier.NodeIdentifierWithPredicates, MapEntryNode> children;
}
@Override
- public Iterable<MapEntryNode> getValue() {
- return Iterables.unmodifiableIterable(children.values());
+ public Collection<MapEntryNode> getValue() {
+ return UnmodifiableCollection.create(children.values());
}
}
}
return withoutChild(key);
}
- protected static final class EmptyImmutableUnkeyedListNode extends AbstractImmutableNormalizedNode<YangInstanceIdentifier.NodeIdentifier, Iterable<UnkeyedListEntryNode>> implements Immutable, UnkeyedListNode {
+ protected static final class EmptyImmutableUnkeyedListNode extends AbstractImmutableNormalizedNode<YangInstanceIdentifier.NodeIdentifier, Collection<UnkeyedListEntryNode>> implements Immutable, UnkeyedListNode {
protected EmptyImmutableUnkeyedListNode(final NodeIdentifier nodeIdentifier) {
super(nodeIdentifier);
}
@Override
- public Iterable<UnkeyedListEntryNode> getValue() {
- return Collections.emptyList();
+ public Collection<UnkeyedListEntryNode> getValue() {
+ return Collections.emptySet();
}
@Override
}
protected static final class ImmutableUnkeyedListNode extends
- AbstractImmutableNormalizedValueNode<YangInstanceIdentifier.NodeIdentifier, Iterable<UnkeyedListEntryNode>>
+ AbstractImmutableNormalizedValueNode<YangInstanceIdentifier.NodeIdentifier, Collection<UnkeyedListEntryNode>>
implements Immutable, UnkeyedListNode {
private final ImmutableList<UnkeyedListEntryNode> children;
package org.opendaylight.yangtools.yang.data.impl.schema.nodes;
import com.google.common.base.Optional;
+import java.util.Collection;
import java.util.Map;
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode;
-public abstract class AbstractImmutableDataContainerNode<K extends PathArgument> extends AbstractImmutableNormalizedNode<K, Iterable<DataContainerChild<? extends PathArgument, ?>>> implements Immutable, DataContainerNode<K> {
+public abstract class AbstractImmutableDataContainerNode<K extends PathArgument> extends AbstractImmutableNormalizedNode<K, Collection<DataContainerChild<? extends PathArgument, ?>>> implements Immutable, DataContainerNode<K> {
private final Map<PathArgument, DataContainerChild<? extends PathArgument, ?>> children;
public AbstractImmutableDataContainerNode(
}
@Override
- public final Iterable<DataContainerChild<? extends PathArgument, ?>> getValue() {
+ public final Collection<DataContainerChild<? extends PathArgument, ?>> getValue() {
return children.values();
}
import com.google.common.base.Function;
import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables;
+import java.util.Collection;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode;
* @param <O>
* entry node type which is inside containing (N) type
*/
-public abstract class ListNodeBaseSerializer<E, N extends DataContainerChild<NodeIdentifier, Iterable<O>>, O extends DataContainerNode<?>>
+public abstract class ListNodeBaseSerializer<E, N extends DataContainerChild<NodeIdentifier, Collection<O>>, O extends DataContainerNode<?>>
implements FromNormalizedNodeSerializer<E, N, ListSchemaNode> {
@Override
public final Iterable<E> serialize(final ListSchemaNode schema, final N node) {
return Iterables.concat(Iterables.transform(node.getValue(), new Function<O, Iterable<E>>() {
@Override
- public Iterable<E> apply(O input) {
+ public Iterable<E> apply(final O input) {
final Iterable<E> serializedChild = getListEntryNodeSerializer().serialize(schema, input);
final int size = Iterables.size(serializedChild);