org.bukkit.plugin
Interface ServicesManager

All Known Implementing Classes:
SimpleServicesManager

public interface ServicesManager

Manages services and service providers. Services are an interface specifying a list of methods that a provider must implement. Providers are implementations of these services. A provider can be queried from the services manager in order to use a service (if one is available). If multiple plugins register a service, then the service with the highest priority takes precedence.


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

Method Detail

register

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

Type Parameters:
T - Provider
Parameters:
service - service class
provider - provider to register
plugin - plugin with the provider
priority - priority of the provider

unregisterAll

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

Parameters:
plugin - The plugin

unregister

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

Parameters:
service - The service interface
provider - The service provider implementation

unregister

void unregister(Object provider)
Unregister a particular provider.

Parameters:
provider - The service provider implementation

load

<T> T load(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.

Type Parameters:
T - The service interface
Parameters:
service - The service interface
Returns:
provider or null

getRegistration

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

Type Parameters:
T - The service interface
Parameters:
service - The service interface
Returns:
provider registration or null

getRegistrations

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

Parameters:
plugin - The plugin
Returns:
provider registration or null

getRegistrations

<T> Collection<RegisteredServiceProvider<T>> getRegistrations(Class<T> service)
Get registrations of providers for a service. The returned list is unmodifiable.

Type Parameters:
T - The service interface
Parameters:
service - The service interface
Returns:
list of registrations

getKnownServices

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

Returns:
list of known services

isProvidedFor

<T> boolean isProvidedFor(Class<T> service)
Returns whether a provider has been registered for a service. Do not check this first only to call load(service) later, as that would be a non-thread safe situation.

Type Parameters:
T - service
Parameters:
service - service to check
Returns:
whether there has been a registered provider


Copyright © 2013. All Rights Reserved.