Class ServiceRegistry<K,S>

java.lang.Object
org.eclipse.rdf4j.common.lang.service.ServiceRegistry<K,S>
Direct Known Subclasses:
CustomAggregateFunctionRegistry, DatatypeHandlerRegistry, FileFormatServiceRegistry, FunctionRegistry, LanguageHandlerRegistry, QueryParserRegistry, RepositoryRegistry, SailRegistry, TransactionSettingRegistry, TupleFunctionRegistry

public abstract class ServiceRegistry<K,S> extends Object
A registry that stores services by some key. Upon initialization, the registry searches for service description files at META-INF/services/<service class name> and initializes itself accordingly.
Author:
Arjohn Kampman
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final org.slf4j.Logger
     
    protected Map<K,S>
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    ServiceRegistry(Class<S> serviceClass)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    add(S service)
    Adds a service to the registry.
    get(K key)
    Gets the service for the specified key, if any.
    Gets all registered services.
    protected abstract K
    getKey(S service)
    Gets the key for the specified service.
    Gets the set of registered keys.
    boolean
    has(K key)
    Checks whether a service for the specified key is available.
    void
    remove(S service)
    Removes a service from the registry.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • logger

      protected final org.slf4j.Logger logger
    • services

      protected Map<K,S> services
  • Constructor Details

    • ServiceRegistry

      protected ServiceRegistry(Class<S> serviceClass)
  • Method Details

    • add

      public Optional<S> add(S service)
      Adds a service to the registry. Any service that is currently registered for the same key (as specified by getKey(Object)) will be replaced with the new service.
      Parameters:
      service - The service that should be added to the registry.
      Returns:
      The previous service that was registered for the same key, or Optional.empty() if there was no such service.
    • remove

      public void remove(S service)
      Removes a service from the registry.
      Parameters:
      service - The service be removed from the registry.
    • get

      public Optional<S> get(K key)
      Gets the service for the specified key, if any.
      Parameters:
      key - The key identifying which service to get.
      Returns:
      The service for the specified key, or Optional.empty() if no such service is avaiable.
    • has

      public boolean has(K key)
      Checks whether a service for the specified key is available.
      Parameters:
      key - The key identifying which service to search for.
      Returns:
      true if a service for the specific key is available, false otherwise.
    • getAll

      public Collection<S> getAll()
      Gets all registered services.
      Returns:
      An unmodifiable collection containing all registered servivces.
    • getKeys

      public Set<K> getKeys()
      Gets the set of registered keys.
      Returns:
      An unmodifiable set containing all registered keys.
    • getKey

      protected abstract K getKey(S service)
      Gets the key for the specified service.
      Parameters:
      service - The service to get the key for.
      Returns:
      The key for the specified service.