Interface ServiceRegistry

All Superinterfaces:
AutoCloseable

public sealed interface ServiceRegistry extends AutoCloseable
A simple service locator for initialization purposes and external services provided by plugins. If there is no suitable name for the service use "default".
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Services that do not have multiple options or need a default should use "default".
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    <T> List<T>
    find(Class<T> type)
    Finds all services of a specific type.
    default <T> @Nullable T
    findOrNull(Class<T> type)
    Finds a service with the default name of "default" or null.
    <T> @Nullable T
    findOrNull(Class<T> type, String name)
    Finds a service or null.
    of()
    Creates an empty service registry.
    void
    Add a closeable to close on close in LIFO order.
    <T> void
    put(Class<T> type, String name, T service)
    Puts a service.
    default <T> void
    put(Class<T> type, T service)
    Puts a service.
    <T> T
    putIfAbsent(Class<T> type, String name, Supplier<T> supplier)
    Puts a service if absent.
    default <T> T
    putIfAbsent(Class<T> type, Supplier<T> supplier)
    Puts a service if absent.
  • Field Details

  • Method Details

    • of

      static ServiceRegistry of()
      Creates an empty service registry.
      Returns:
      registry.
    • put

      <T> void put(Class<T> type, String name, T service)
      Puts a service.
      Type Parameters:
      T - service type.
      Parameters:
      type - type.
      name - name of service.
      service - service instance.
    • put

      default <T> void put(Class<T> type, T service)
      Puts a service.
      Type Parameters:
      T - service type.
      Parameters:
      type - type.
      service - service instance.
    • putIfAbsent

      <T> T putIfAbsent(Class<T> type, String name, Supplier<T> supplier)
      Puts a service if absent.
      Type Parameters:
      T - service type.
      Parameters:
      type - type.
      name - name of the service.
      supplier - service instance.
      Returns:
      service.
    • putIfAbsent

      default <T> T putIfAbsent(Class<T> type, Supplier<T> supplier)
      Puts a service if absent.
      Type Parameters:
      T - service type.
      Parameters:
      type - type.
      supplier - service instance.
      Returns:
      service.
    • findOrNull

      <T> @Nullable T findOrNull(Class<T> type, String name)
      Finds a service or null.
      Type Parameters:
      T - service type
      Parameters:
      type - service class.
      name - name of service.
      Returns:
      service or null.
    • findOrNull

      default <T> @Nullable T findOrNull(Class<T> type)
      Finds a service with the default name of "default" or null.
      Type Parameters:
      T - service type
      Parameters:
      type - service class.
      Returns:
      service or null.
    • find

      <T> List<T> find(Class<T> type)
      Finds all services of a specific type.
      Type Parameters:
      T - service type.
      Parameters:
      type - service class.
      Returns:
      list of services.
    • onClose

      void onClose(AutoCloseable closeable)
      Add a closeable to close on close in LIFO order.
      Parameters:
      closeable - closeable.
    • close

      void close()
      Specified by:
      close in interface AutoCloseable