Package ghidra.framework.plugintool

# Class ServiceProviderDecorator

java.lang.Object
ghidra.framework.plugintool.ServiceProviderDecorator

All Implemented Interfaces:
  `ServiceProvider`

public class ServiceProviderDecorator extends Object implements ServiceProvider

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addServiceListener(ServiceListener listener)`
  Adds a listener that will be called as services are added and removed from this ServiceProvider.
  `static ServiceProviderDecorator`
  `createEmptyDecorator()`
  `static ServiceProviderDecorator`
  `decorate(ServiceProvider delegate)`
  `<T> T`
  `getService(Class<T> serviceClass)`
  Returns the Service object that implements the given service interface.
  `<T> void`
  `overrideService(Class<T> serviceClass, Object service)`
  Adds a service that will override any service contained in the delegate `ServiceProvider`.
  `void`
  `removeServiceListener(ServiceListener listener)`
  Removes the given listener from this ServiceProvider.

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

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

- ## Method Details

  - ### decorate

    public static ServiceProviderDecorator decorate(ServiceProvider delegate)

  - ### createEmptyDecorator

    public static ServiceProviderDecorator createEmptyDecorator()

  - ### overrideService

    public <T> void overrideService(Class<T> serviceClass, Object service)
    Adds a service that will override any service contained in the delegate `ServiceProvider`.

    Note: this will not notify any clients that services have been changed. This means that you should call this method before passing this service provider on to your clients.

    Parameters:
      `serviceClass` - the service class
      `service` - the service implementation

  - ### getService

    public <T> T getService(Class<T> serviceClass)
    Description copied from interface: `ServiceProvider`
    Returns the Service object that implements the given service interface.
    Specified by:
      `getService` in interface `ServiceProvider`
    Parameters:
      `serviceClass` - the interface class.

  - ### addServiceListener

    public void addServiceListener(ServiceListener listener)
    Description copied from interface: `ServiceProvider`
    Adds a listener that will be called as services are added and removed from this ServiceProvider.
    Specified by:
      `addServiceListener` in interface `ServiceProvider`
    Parameters:
      `listener` - The listener to add.

  - ### removeServiceListener

    public void removeServiceListener(ServiceListener listener)
    Description copied from interface: `ServiceProvider`
    Removes the given listener from this ServiceProvider. This method does nothing if the given listener is not contained by this ServiceProvider.
    Specified by:
      `removeServiceListener` in interface `ServiceProvider`