Class DatasetResolverRegistry

java.lang.Object
dev.dokimos.core.DatasetResolverRegistry

public class DatasetResolverRegistry extends Object
Singleton registry for dataset resolvers.

Manages the discovery and registration of dataset resolvers, supporting both service provider interface (SPI) based auto-discovery and programmatic registration. Resolvers are tried in order until one matches the given URI.

  • Constructor Details

    • DatasetResolverRegistry

      public DatasetResolverRegistry()
      Creates a fresh, independent registry.

      The new instance is seeded the same way as the global singleton: SPI resolvers are auto-discovered via ServiceLoader and the built-in resolvers are added. It maintains its own resolver chain, so register(DatasetResolver) on this instance does not affect the global singleton returned by getInstance().

  • Method Details

    • getInstance

      public static DatasetResolverRegistry getInstance()
      Returns the singleton registry instance.
      Returns:
      the registry instance
    • register

      public void register(DatasetResolver resolver)
      Registers a custom resolver with the highest priority.

      The resolver is added at the beginning of the resolver chain and will be consulted before any previously registered resolvers.

      Parameters:
      resolver - the resolver to register
    • resolve

      public Dataset resolve(String uri)
      Resolves a URI to a dataset using the first matching resolver.

      Iterates through registered resolvers in order until one supports the given URI.

      Parameters:
      uri - the dataset URI to resolve
      Returns:
      the resolved dataset
      Throws:
      DatasetResolutionException - if no resolver supports the URI