Package org.bukkit.plugin

# Class SimpleServicesManager

java.lang.Object
org.bukkit.plugin.SimpleServicesManager

All Implemented Interfaces:
  `ServicesManager`

public class SimpleServicesManager extends Object implements ServicesManager
A simple services manager.

## Constructor Summary

Constructors
Constructor
Description
`SimpleServicesManager()`

## Method Summary

Modifier and Type
Method
Description
`@NotNull Set<Class<?>>`
`getKnownServices()`
Get a list of known services.
`<T> @Nullable RegisteredServiceProvider<T>`
`getRegistration(@NotNull Class<T> service)`
Queries for a provider registration.
`<T> @NotNull List<RegisteredServiceProvider<T>>`
`getRegistrations(@NotNull Class<T> service)`
Get registrations of providers for a service.
`@NotNull List<RegisteredServiceProvider<?>>`
`getRegistrations(@NotNull Plugin plugin)`
Get registrations of providers for a plugin.
`<T> boolean`
`isProvidedFor(@NotNull Class<T> service)`
Returns whether a provider has been registered for a service.
`<T> T`
`load(@NotNull Class<T> service)`
Queries for a provider.
`<T> void`
`register(@NotNull Class<T> service, T provider, @NotNull Plugin plugin, @NotNull ServicePriority priority)`
Register a provider of a service.
`void`
`unregister(@NotNull Class<?> service, @NotNull Object provider)`
Unregister a particular provider for a particular service.
`void`
`unregister(@NotNull Object provider)`
Unregister a particular provider.
`void`
`unregisterAll(@NotNull Plugin plugin)`
Unregister all the providers registered by a particular plugin.

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

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

## Constructor Details

### SimpleServicesManager

public SimpleServicesManager()

## Method Details

### register

public <T> void register(@NotNull @NotNull Class<T> service, @NotNull T provider, @NotNull @NotNull Plugin plugin, @NotNull @NotNull ServicePriority priority)
Register a provider of a service.

Specified by:
  `register` in interface `ServicesManager`
Type Parameters:
  `T` - Provider
Parameters:
  `service` - service class
  `provider` - provider to register
  `plugin` - plugin with the provider
  `priority` - priority of the provider

### unregisterAll

public void unregisterAll(@NotNull @NotNull Plugin plugin)
Unregister all the providers registered by a particular plugin.

Specified by:
  `unregisterAll` in interface `ServicesManager`
Parameters:
  `plugin` - The plugin

### unregister

public void unregister(@NotNull @NotNull Class<?> service, @NotNull @NotNull Object provider)
Unregister a particular provider for a particular service.

Specified by:
  `unregister` in interface `ServicesManager`
Parameters:
  `service` - The service interface
  `provider` - The service provider implementation

### unregister

public void unregister(@NotNull @NotNull Object provider)
Unregister a particular provider.

Specified by:
  `unregister` in interface `ServicesManager`
Parameters:
  `provider` - The service provider implementation

### load

@Nullable public <T> T load(@NotNull @NotNull Class<T> service)
Queries for a provider. This may return if no provider has been registered for a service. The highest priority provider is returned.

Specified by:
  `load` in interface `ServicesManager`
Type Parameters:
  `T` - The service interface
Parameters:
  `service` - The service interface
Returns:
  provider or null

### getRegistration

@Nullable public <T> @Nullable RegisteredServiceProvider<T> getRegistration(@NotNull @NotNull Class<T> service)
Queries for a provider registration. This may return if no provider has been registered for a service.

Specified by:
  `getRegistration` in interface `ServicesManager`
Type Parameters:
  `T` - The service interface
Parameters:
  `service` - The service interface
Returns:
  provider registration or null

### getRegistrations

@NotNull public @NotNull List<RegisteredServiceProvider<?>> getRegistrations(@NotNull @NotNull Plugin plugin)
Get registrations of providers for a plugin.

Specified by:
  `getRegistrations` in interface `ServicesManager`
Parameters:
  `plugin` - The plugin
Returns:
  provider registrations

### getRegistrations

@NotNull public <T> @NotNull List<RegisteredServiceProvider<T>> getRegistrations(@NotNull @NotNull Class<T> service)
Get registrations of providers for a service. The returned list is an unmodifiable copy.

Specified by:
  `getRegistrations` in interface `ServicesManager`
Type Parameters:
  `T` - The service interface
Parameters:
  `service` - The service interface
Returns:
  a copy of the list of registrations

### getKnownServices

@NotNull public @NotNull Set<Class<?>> getKnownServices()
Get a list of known services. A service is known if it has registered providers for it.

Specified by:
  `getKnownServices` in interface `ServicesManager`
Returns:
  a copy of the set of known services

### isProvidedFor

public <T> boolean isProvidedFor(@NotNull @NotNull Class<T> service)
Returns whether a provider has been registered for a service.

Specified by:
  `isProvidedFor` in interface `ServicesManager`
Type Parameters:
  `T` - service
Parameters:
  `service` - service to check
Returns:
  true if and only if there are registered providers