+ final var entry = resolvePath(spec.path());
+ final var stack = entry.getKey();
+ final var stmt = stack.enterSchemaTree(BindingReflections.findQName(spec.type()).bindTo(entry.getValue()));
+ verify(stmt instanceof ActionEffectiveStatement, "Action %s resolved to unexpected statement %s", spec, stmt);
+ return stack.toSchemaNodeIdentifier();
+ }
+
+ @NonNull Absolute getNotificationPath(final @NonNull InstanceNotificationSpec<?, ?> spec) {
+ final var entry = resolvePath(spec.path());
+ final var stack = entry.getKey();
+ final var stmt = stack.enterSchemaTree(BindingReflections.findQName(spec.type()).bindTo(entry.getValue()));
+ verify(stmt instanceof NotificationEffectiveStatement, "Notification %s resolved to unexpected statement %s",
+ spec, stmt);
+ return stack.toSchemaNodeIdentifier();
+ }
+
+ private @NonNull Entry<SchemaInferenceStack, QNameModule> resolvePath(final @NonNull InstanceIdentifier<?> path) {