import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
-import org.opendaylight.yangtools.concepts.Immutable;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
public class ImmutableUnkeyedListNodeBuilder implements CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> {
private List<UnkeyedListEntryNode> value;
- private YangInstanceIdentifier.NodeIdentifier nodeIdentifier;
+ private NodeIdentifier nodeIdentifier;
private boolean dirty;
protected ImmutableUnkeyedListNodeBuilder() {
protected ImmutableUnkeyedListNodeBuilder(final ImmutableUnkeyedListNode node) {
this.nodeIdentifier = node.getIdentifier();
+ // FIXME: clean this up, notably reuse unmodified lists
this.value = new LinkedList<>();
Iterables.addAll(value, node.getValue());
this.dirty = true;
}
- public static CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> create() {
+ public static @NonNull CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> create() {
return new ImmutableUnkeyedListNodeBuilder();
}
- public static CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> create(final int sizeHint) {
+ public static @NonNull CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> create(final int sizeHint) {
return new ImmutableUnkeyedListNodeBuilder();
}
- public static CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> create(final UnkeyedListNode node) {
+ public static @NonNull CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> create(
+ final UnkeyedListNode node) {
if (!(node instanceof ImmutableUnkeyedListNode)) {
throw new UnsupportedOperationException(String.format("Cannot initialize from class %s", node.getClass()));
}
@Override
public CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> withoutChild(
- final YangInstanceIdentifier.PathArgument key) {
+ final PathArgument key) {
checkDirty();
throw new UnsupportedOperationException("Children does not have identifiers.");
}
@Override
- public CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> withValue(final Collection<UnkeyedListEntryNode> value) {
+ public CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> withValue(
+ final Collection<UnkeyedListEntryNode> withValue) {
// TODO replace or putAll ?
- for (final UnkeyedListEntryNode UnkeyedListEntryNode : value) {
- withChild(UnkeyedListEntryNode);
+ for (final UnkeyedListEntryNode node : withValue) {
+ withChild(node);
}
return this;
@Override
public CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> withNodeIdentifier(
- final YangInstanceIdentifier.NodeIdentifier nodeIdentifier) {
- this.nodeIdentifier = nodeIdentifier;
+ final NodeIdentifier withNodeIdentifier) {
+ this.nodeIdentifier = withNodeIdentifier;
return this;
}
dirty = true;
if (value.isEmpty()) {
return new EmptyImmutableUnkeyedListNode(nodeIdentifier);
- } else {
- return new ImmutableUnkeyedListNode(nodeIdentifier, ImmutableList.copyOf(value));
}
+ return new ImmutableUnkeyedListNode(nodeIdentifier, ImmutableList.copyOf(value));
}
@Override
}
@Override
- public NormalizedNodeContainerBuilder<NodeIdentifier, PathArgument, UnkeyedListEntryNode, UnkeyedListNode> removeChild(
- final PathArgument key) {
+ public NormalizedNodeContainerBuilder<NodeIdentifier, PathArgument, UnkeyedListEntryNode, UnkeyedListNode>
+ removeChild(final PathArgument key) {
return withoutChild(key);
}
- protected static final class EmptyImmutableUnkeyedListNode extends AbstractImmutableNormalizedNode<YangInstanceIdentifier.NodeIdentifier, Collection<UnkeyedListEntryNode>> implements Immutable, UnkeyedListNode {
+ protected static final class EmptyImmutableUnkeyedListNode extends
+ AbstractImmutableNormalizedNode<NodeIdentifier, Collection<UnkeyedListEntryNode>>
+ implements UnkeyedListNode {
protected EmptyImmutableUnkeyedListNode(final NodeIdentifier nodeIdentifier) {
super(nodeIdentifier);
}
@Override
- public Collection<UnkeyedListEntryNode> getValue() {
- return Collections.emptySet();
+ public ImmutableList<UnkeyedListEntryNode> getValue() {
+ return ImmutableList.of();
}
@Override
}
protected static final class ImmutableUnkeyedListNode extends
- AbstractImmutableNormalizedValueNode<YangInstanceIdentifier.NodeIdentifier, Collection<UnkeyedListEntryNode>>
- implements Immutable, UnkeyedListNode {
+ AbstractImmutableNormalizedValueNode<NodeIdentifier, Collection<UnkeyedListEntryNode>>
+ implements UnkeyedListNode {
private final ImmutableList<UnkeyedListEntryNode> children;
- ImmutableUnkeyedListNode(final YangInstanceIdentifier.NodeIdentifier nodeIdentifier,
+ ImmutableUnkeyedListNode(final NodeIdentifier nodeIdentifier,
final ImmutableList<UnkeyedListEntryNode> children) {
super(nodeIdentifier, children);
this.children = children;