Improve ImmutableAugmentationNodeBuilder defensiveness
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / schema / builder / impl / ImmutableAugmentationNodeBuilder.java
index 8f4357d24c0361b244c323d631e12d6880c78a39..0db20084b45314b1d79facef7373774600dbb9f0 100644 (file)
@@ -53,9 +53,12 @@ public class ImmutableAugmentationNodeBuilder
     public DataContainerNodeBuilder<AugmentationIdentifier, AugmentationNode> withChild(
             final DataContainerChild<?, ?> child) {
         // Check nested augments
-        DataValidationException.checkLegalData(!(child instanceof AugmentationNode),
-                "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);
     }
@@ -74,7 +77,7 @@ public class ImmutableAugmentationNodeBuilder
             extends AbstractImmutableDataContainerNode<AugmentationIdentifier> implements AugmentationNode {
 
         ImmutableAugmentationNode(final AugmentationIdentifier nodeIdentifier,
-                final Map<PathArgument, DataContainerChild<? extends PathArgument, ?>> children) {
+                final Map<PathArgument, Object> children) {
             super(children, nodeIdentifier);
         }
     }