001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package dev.metaschema.core.model;
007
008import java.net.URI;
009
010import edu.umd.cs.findbugs.annotations.NonNull;
011
012/**
013 * Provides URI resolution capabilities for Metaschema resources.
014 */
015@FunctionalInterface
016public interface IUriResolver {
017  /**
018   * Resolve the provided URI, producing a resolved URI, which may point to a
019   * different resource than the provided URI.
020   *
021   * @param uri
022   *          the URI to resolve
023   * @return the resulting URI
024   */
025  @NonNull
026  URI resolve(@NonNull URI uri);
027}