X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fimpl%2Fschema%2Fnodes%2FAbstractImmutableDataContainerNode.java;h=a4b426885827003dfb9f3fdbb79db6b9b9c54013;hb=refs%2Fchanges%2F15%2F12815%2F4;hp=f914484831b120066529ed6696c8a58e5f099081;hpb=62b1e511c8e7a219134e74c3bad8e4ab83e93512;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/nodes/AbstractImmutableDataContainerNode.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/nodes/AbstractImmutableDataContainerNode.java index f914484831..a4b4268858 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/nodes/AbstractImmutableDataContainerNode.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/nodes/AbstractImmutableDataContainerNode.java @@ -7,25 +7,21 @@ */ package org.opendaylight.yangtools.yang.data.impl.schema.nodes; +import com.google.common.base.Optional; import java.util.Map; - import org.opendaylight.yangtools.concepts.Immutable; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument; +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; -import com.google.common.base.Optional; - -public abstract class AbstractImmutableDataContainerNode // - extends AbstractImmutableNormalizedNode>> // - implements Immutable, DataContainerNode { - - protected final Map> children; +public abstract class AbstractImmutableDataContainerNode extends AbstractImmutableNormalizedNode>> implements Immutable, DataContainerNode { + private final Map> children; public AbstractImmutableDataContainerNode( final Map> children, final K nodeIdentifier) { - super(nodeIdentifier, children.values()); - this.children = children; + super(nodeIdentifier); + + this.children = UnmodifiableChildrenMap.create(children); } @Override @@ -34,11 +30,25 @@ public abstract class AbstractImmutableDataContainerNode } @Override - public String toString() { - final StringBuffer sb = new StringBuffer("ImmutableContainerNode{"); - sb.append("nodeIdentifier=").append(nodeIdentifier); - sb.append(", children=").append(children); - sb.append('}'); - return sb.toString(); + public final Iterable> getValue() { + return children.values(); + } + + @Override + protected int valueHashCode() { + return children.hashCode(); + } + + public final Map> getChildren() { + return children; + } + + @Override + protected boolean valueEquals(final AbstractImmutableNormalizedNode other) { + if (!(other instanceof AbstractImmutableDataContainerNode)) { + return false; + } + + return children.equals(((AbstractImmutableDataContainerNode)other).children); } }