Interface CoffeePickCatalogType

All Known Implementing Classes:
CoffeePickCatalog

public interface CoffeePickCatalogType
The interface exposed by the catalog. A catalog represents an aggregated set of repositories over which searches can be performed. Essentially, the catalog is the set of runtimes that the user can get. Contrast this to the inventory, which represents the set of runtimes that the user currently has.
See Also:
CoffeePickInventoryType
  • Method Details

    • events

      io.reactivex.rxjava3.core.Observable<CoffeePickCatalogEventType> events()
      Access the stream of events published by the catalog when the state of the catalog changes.
      Returns:
      A stream of events
    • search

      java.util.Map<java.lang.String,​RuntimeDescription> search​(CoffeePickSearch parameters)
      Search for all runtimes matching the given parameters.
      Parameters:
      parameters - The parameters
      Returns:
      The matching runtimes
    • searchAll

      default java.util.Map<java.lang.String,​RuntimeDescription> searchAll()
      Returns:
      All runtimes in the inventory
    • searchExact

      default java.util.Optional<RuntimeDescription> searchExact​(java.lang.String id)
      Parameters:
      id - The ID of the runtime
      Returns:
      The runtime with the given ID
    • searchExactOrFail

      default RuntimeDescription searchExactOrFail​(java.lang.String id) throws java.io.FileNotFoundException
      Parameters:
      id - The ID of the runtime
      Returns:
      The runtime with the given ID
      Throws:
      java.io.FileNotFoundException - If no runtime exists with the given ID
    • fetch

      java.io.InputStream fetch​(java.lang.String id) throws java.io.IOException
      Parameters:
      id - The ID of the runtime
      Returns:
      An input stream representing the archive of the runtime
      Throws:
      java.io.IOException - On I/O errors
    • updateRepository

      void updateRepository​(java.net.URI uri, CoffeePickIsCancelledType cancelled) throws java.lang.Exception, java.util.concurrent.CancellationException
      Update the repository with the given URI. The method takes a function cancelled that will be evaluated repeatedly and, if the function returns true at any point, the operation will be cancelled.
      Parameters:
      uri - The URI
      cancelled - A function that returns true if the operation should be cancelled
      Throws:
      java.lang.Exception - On errors
      java.util.concurrent.CancellationException - If cancelled returns true while the operation is running
    • updateRepository

      default void updateRepository​(java.net.URI uri) throws java.lang.Exception
      Update the repository with the given URI.
      Parameters:
      uri - The URI
      Throws:
      java.lang.Exception - On errors
    • listRepositories

      java.util.List<RuntimeRepositoryType> listRepositories()
      Returns:
      An immutable snapshot of the current repositories