Package ghidra.framework.plugintool

# Annotation Interface ServiceInfo

@Retention(RUNTIME) @Target(TYPE) public @interface ServiceInfo
Meta-data about a Plugin's Service.

Example:

    @ServiceInfo( defaultProvider = MyPlugin.class )
     public interface MyService {
      public void foo();
    }

- ## Optional Element Summary

  Optional Elements
  Modifier and Type
  Optional Element
  Description
  `Class<? extends Plugin>[]`
  `defaultProvider`
  Sets the class that provides the default implementation of this service.
  `String`
  `defaultProviderName`
  Sets the class name of the class that provides the default implementation of this service.
  `String`
  `description`
  Sets the description for this service.

- ## Element Details

  - ### defaultProviderName

    String defaultProviderName
    Sets the class name of the class that provides the default implementation of this service.

    Use this form instead of `defaultProvider = Someclass.class` if you want to prevent any form of reference between the service class and the implementation class.

    For example, `defaultProviderName = "packageX.subPackageY.SomeClass"`

    Using `defaultProviderName = packageX.subPackageY.SomeClass.class.getName()` will not work (value needs to be a constant expression).

    Returns:
      full package and classname string of the plugin class that provides this service.
    Default:
      `""`

  - ### defaultProvider

    Class<? extends Plugin>[] defaultProvider
    Sets the class that provides the default implementation of this service.
    Returns:
      Class instance of the plugin that provides this service.
    Default:
      `{}`

  - ### description

    String description
    Sets the description for this service.

    Currently not used.

    Returns:
      string description of this service.
    Default:
      `""`