001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package dev.metaschema.core.model;
007
008import dev.metaschema.core.metapath.item.node.INodeItem;
009import edu.umd.cs.findbugs.annotations.NonNull;
010
011/**
012 * Represents a model element that can be queried using Metapath expressions.
013 * <p>
014 * This interface provides access to the node item representation required for
015 * Metapath evaluation.
016 */
017@FunctionalInterface
018public interface IMetapathQueryable {
019  /**
020   * Get the Metapath node item for this Metaschema module construct, which can be
021   * used to query it.
022   *
023   * @return the node item
024   */
025  @NonNull
026  INodeItem getNodeItem();
027}