- private static void checkIdentifierReferencesData(final YangInstanceIdentifier path,
- final NormalizedNode<?, ?> data) {
- final PathArgument lastArg = path.getLastPathArgument();
- Preconditions.checkArgument(data.getIdentifier().equals(lastArg),
- "Instance identifier references %s but data identifier is %s", lastArg, data.getIdentifier());
+ private static void checkIdentifierReferencesData(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+ if (!path.isEmpty()) {
+ final PathArgument lastArg = path.getLastPathArgument();
+ Preconditions.checkArgument(lastArg != null, "Instance identifier %s has invalid null path argument", path);
+ Preconditions.checkArgument(lastArg.equals(data.getIdentifier()),
+ "Instance identifier references %s but data identifier is %s", lastArg, data.getIdentifier());
+ } else {
+ final QName type = data.getNodeType();
+ Preconditions.checkArgument(SchemaContext.NAME.equals(type), "Incorrect name %s of root node", type);
+ }