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%2FImmutableAugmentationNodeBuilder.java;h=0db20084b45314b1d79facef7373774600dbb9f0;hb=63e5382df42a1018ce79d5d4221819fc5ea2a5c4;hp=ecc0d6534fde16dfd04c8cb0d26726d84fbbf914;hpb=06452ecebb1998538c59a0a5ed47f47034045af5;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableAugmentationNodeBuilder.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableAugmentationNodeBuilder.java index ecc0d6534f..0db20084b4 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableAugmentationNodeBuilder.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableAugmentationNodeBuilder.java @@ -8,8 +8,7 @@ package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl; import java.util.Map; - -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode; @@ -18,10 +17,10 @@ import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContaine import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.valid.DataValidationException; import org.opendaylight.yangtools.yang.data.impl.schema.nodes.AbstractImmutableDataContainerNode; -public class ImmutableAugmentationNodeBuilder extends AbstractImmutableDataContainerNodeBuilder { +public class ImmutableAugmentationNodeBuilder + extends AbstractImmutableDataContainerNodeBuilder { protected ImmutableAugmentationNodeBuilder() { - super(); } protected ImmutableAugmentationNodeBuilder(final int sizeHint) { @@ -32,15 +31,17 @@ public class ImmutableAugmentationNodeBuilder extends AbstractImmutableDataConta super(node); } - public static DataContainerNodeBuilder create() { + public static @NonNull DataContainerNodeBuilder create() { return new ImmutableAugmentationNodeBuilder(); } - public static DataContainerNodeBuilder create(final int sizeHint) { + public static @NonNull DataContainerNodeBuilder create( + final int sizeHint) { return new ImmutableAugmentationNodeBuilder(sizeHint); } - public static DataContainerNodeBuilder create(final AugmentationNode node) { + public static @NonNull DataContainerNodeBuilder create( + final AugmentationNode node) { if (!(node instanceof ImmutableAugmentationNode)) { throw new UnsupportedOperationException(String.format("Cannot initialize from class %s", node.getClass())); } @@ -49,12 +50,15 @@ public class ImmutableAugmentationNodeBuilder extends AbstractImmutableDataConta } @Override - public DataContainerNodeBuilder withChild( + public DataContainerNodeBuilder withChild( final DataContainerChild child) { // Check nested augments - DataValidationException.checkLegalData(child instanceof AugmentationNode == false, - "Unable to add: %s, as a child for: %s, Nested augmentations are not permitted", child.getNodeType(), - getNodeIdentifier() == null ? this : getNodeIdentifier()); + if (child instanceof AugmentationNode) { + final AugmentationIdentifier myId = getNodeIdentifier(); + throw new DataValidationException(String.format( + "Unable to add: %s, as a child for: %s, Nested augmentations are not permitted", child.getIdentifier(), + myId == null ? this : myId)); + } return super.withChild(child); } @@ -69,11 +73,12 @@ public class ImmutableAugmentationNodeBuilder extends AbstractImmutableDataConta return new ImmutableAugmentationNode(getNodeIdentifier(), buildValue()); } - private static final class ImmutableAugmentationNode extends AbstractImmutableDataContainerNode implements AugmentationNode { + private static final class ImmutableAugmentationNode + extends AbstractImmutableDataContainerNode implements AugmentationNode { - ImmutableAugmentationNode(final YangInstanceIdentifier.AugmentationIdentifier nodeIdentifier, final Map> children) { + ImmutableAugmentationNode(final AugmentationIdentifier nodeIdentifier, + final Map children) { super(children, nodeIdentifier); } } - }