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%2Fbuilder%2Fimpl%2FImmutableMapEntryNodeBuilder.java;h=33fd8a8ef122d53b9f5b689a382f4ee8f7ac4121;hb=6d818dcbe5187d15a46cced7893be28df1cec725;hp=445cf5519199ac0b896b1b8a80d5b7553928b481;hpb=e9f9f9f58e79ea99d4b76637087de1a5df4115db;p=yangtools.git 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 445cf55191..33fd8a8ef1 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 @@ -11,25 +11,27 @@ import java.util.Collection; import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QName; -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.NodeIdentifierWithPredicates; 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.LeafNode; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeAttrBuilder; +import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.valid.DataValidationException; -import org.opendaylight.yangtools.yang.data.impl.schema.nodes.AbstractImmutableDataContainerAttrNode; +import org.opendaylight.yangtools.yang.data.impl.schema.nodes.AbstractImmutableDataContainerNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ImmutableMapEntryNodeBuilder extends AbstractImmutableDataContainerNodeAttrBuilder { +public class ImmutableMapEntryNodeBuilder + extends AbstractImmutableDataContainerNodeBuilder { private static final Logger LOG = LoggerFactory.getLogger(ImmutableMapEntryNodeBuilder.class); - protected final Map childrenQNamesToPaths; + protected final Map childrenQNamesToPaths; protected ImmutableMapEntryNodeBuilder() { - super(); this.childrenQNamesToPaths = new LinkedHashMap<>(); } @@ -44,15 +46,17 @@ public class ImmutableMapEntryNodeBuilder extends AbstractImmutableDataContainer fillQnames(node.getValue(), childrenQNamesToPaths); } - public static DataContainerNodeAttrBuilder create() { + public static @NonNull DataContainerNodeBuilder create() { return new ImmutableMapEntryNodeBuilder(); } - public static DataContainerNodeAttrBuilder create(final int sizeHint) { + public static @NonNull DataContainerNodeBuilder create( + final int sizeHint) { return new ImmutableMapEntryNodeBuilder(sizeHint); } - public static DataContainerNodeAttrBuilder create(final MapEntryNode node) { + public static @NonNull DataContainerNodeBuilder create( + final MapEntryNode node) { if (!(node instanceof ImmutableMapEntryNode)) { throw new UnsupportedOperationException(String.format("Cannot initialize from class %s", node.getClass())); } @@ -60,12 +64,13 @@ public class ImmutableMapEntryNodeBuilder extends AbstractImmutableDataContainer return new ImmutableMapEntryNodeBuilder((ImmutableMapEntryNode)node); } - private static void fillQnames(final Iterable> iterable, final Map out) { - for (final DataContainerChild childId : iterable) { - final YangInstanceIdentifier.PathArgument identifier = childId.getIdentifier(); + private static void fillQnames(final Iterable> iterable, + final Map out) { + for (final DataContainerChild childId : iterable) { + final PathArgument identifier = childId.getIdentifier(); // Augmentation nodes cannot be keys, and do not have to be present in childrenQNamesToPaths map - if(isAugment(identifier)) { + if (isAugment(identifier)) { continue; } @@ -73,21 +78,22 @@ public class ImmutableMapEntryNodeBuilder extends AbstractImmutableDataContainer } } - @Override - public DataContainerNodeAttrBuilder withValue(final Collection> value) { - fillQnames(value, childrenQNamesToPaths); - return super.withValue(value); + public DataContainerNodeBuilder withValue( + final Collection> withValue) { + fillQnames(withValue, childrenQNamesToPaths); + return super.withValue(withValue); } - private static boolean isAugment(final YangInstanceIdentifier.PathArgument identifier) { - return identifier instanceof YangInstanceIdentifier.AugmentationIdentifier; + private static boolean isAugment(final PathArgument identifier) { + return identifier instanceof AugmentationIdentifier; } @Override - public DataContainerNodeAttrBuilder withChild(final DataContainerChild child) { + public DataContainerNodeBuilder withChild( + final DataContainerChild child) { // Augmentation nodes cannot be keys, and do not have to be present in childrenQNamesToPaths map - if(!isAugment(child.getIdentifier())) { + if (!isAugment(child.getIdentifier())) { childrenQNamesToPaths.put(child.getNodeType(), child.getIdentifier()); } @@ -96,8 +102,8 @@ public class ImmutableMapEntryNodeBuilder extends AbstractImmutableDataContainer @Override public MapEntryNode build() { - for (final Entry key : getNodeIdentifier().getKeyValues().entrySet()) { - final DataContainerChild childNode = getChild(childrenQNamesToPaths.get(key.getValue())); + for (final Entry key : getNodeIdentifier().entrySet()) { + final DataContainerChild childNode = getChild(childrenQNamesToPaths.get(key.getKey())); // We have enough information to fill-in missing leaf nodes, so let's do that if (childNode == null) { @@ -105,18 +111,20 @@ public class ImmutableMapEntryNodeBuilder extends AbstractImmutableDataContainer LOG.debug("Adding leaf {} implied by key {}", leaf, key); withChild(leaf); } else { - DataValidationException.checkListKey(getNodeIdentifier(), key.getKey(), key.getValue(), childNode.getValue()); + DataValidationException.checkListKey(getNodeIdentifier(), key.getKey(), key.getValue(), + childNode.getValue()); } } - return new ImmutableMapEntryNode(getNodeIdentifier(), buildValue(), getAttributes()); + return new ImmutableMapEntryNode(getNodeIdentifier(), buildValue()); } - private static final class ImmutableMapEntryNode extends AbstractImmutableDataContainerAttrNode implements MapEntryNode { + private static final class ImmutableMapEntryNode + extends AbstractImmutableDataContainerNode implements MapEntryNode { - ImmutableMapEntryNode(final YangInstanceIdentifier.NodeIdentifierWithPredicates nodeIdentifier, - final Map> children, final Map attributes) { - super(children, nodeIdentifier, attributes); + ImmutableMapEntryNode(final NodeIdentifierWithPredicates nodeIdentifier, + final Map children) { + super(children, nodeIdentifier); } } }