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}