Package com.io7m.coffeepick.repository.spi

# Class RuntimeRepositoriesServiceLoaderProvider

java.lang.Object
com.io7m.coffeepick.repository.spi.RuntimeRepositoriesServiceLoaderProvider

All Implemented Interfaces:
  `RuntimeRepositoryProviderRegistryType`

    @ThreadSafe
    public final class RuntimeRepositoriesServiceLoaderProvider
    extends java.lang.Object
    implements RuntimeRepositoryProviderRegistryType

A ServiceLoader-based repository registry.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `static RuntimeRepositoryProviderRegistryType` | `create()` | Create a new registry that looks for repository provider implementations using ServiceLoader.
  `io.reactivex.rxjava3.core.Observable<RuntimeRepositoryProviderRegistryEventType>` | `events()` |
  `java.util.Map<java.net.URI,​RuntimeRepositoryProviderType>` | `repositoryProviders()` |

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### create

    public static RuntimeRepositoryProviderRegistryType create()
    Create a new registry that looks for repository provider implementations using ServiceLoader.
    Returns:
      A new registry

  - ### events

    public io.reactivex.rxjava3.core.Observable<RuntimeRepositoryProviderRegistryEventType> events()
    Specified by:
      `events` in interface `RuntimeRepositoryProviderRegistryType`
    Returns:
      A stream of events indicating repository changes

  - ### repositoryProviders

    public java.util.Map<java.net.URI,​RuntimeRepositoryProviderType> repositoryProviders()
    Specified by:
      `repositoryProviders` in interface `RuntimeRepositoryProviderRegistryType`
    Returns:
      The currently available repository providers