1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package dev.metaschema.core.model;
7   
8   import java.net.URI;
9   
10  import edu.umd.cs.findbugs.annotations.NonNull;
11  
12  /**
13   * Provides URI resolution capabilities for Metaschema resources.
14   */
15  @FunctionalInterface
16  public interface IUriResolver {
17    /**
18     * Resolve the provided URI, producing a resolved URI, which may point to a
19     * different resource than the provided URI.
20     *
21     * @param uri
22     *          the URI to resolve
23     * @return the resulting URI
24     */
25    @NonNull
26    URI resolve(@NonNull URI uri);
27  }