Package org.apache.nutch.plugin

# Class Extension

java.lang.Object
org.apache.nutch.plugin.Extension

public class Extension extends Object
An `Extension` is a kind of listener descriptor that will be installed on a concrete `ExtensionPoint` that acts as kind of Publisher.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Extension(PluginDescriptor pDescriptor, String pExtensionPoint, String pId, String pExtensionClass, Configuration conf, PluginRepository pluginRepository)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addAttribute(String pKey, String pValue)`
  Adds a attribute and is only used until model creation at plugin system start up.
  `String`
  `getAttribute(String pKey)`
  Returns a attribute value, that is setuped in the manifest file and is definied by the extension point xml schema.
  `String`
  `getClazz()`
  Returns the full class name of the extension point implementation
  `PluginDescriptor`
  `getDescriptor()`
  Get the plugin descriptor.
  `Object`
  `getExtensionInstance()`
  Return an instance of the extension implementation.
  `String`
  `getId()`
  Return the unique id of the extension.
  `String`
  `getTargetPoint()`
  Get target point
  `void`
  `setClazz(String extensionClazz)`
  Sets the Class that implement the concret extension and is only used until model creation at system start up.
  `void`
  `setDescriptor(PluginDescriptor pDescriptor)`
  Sets the plugin descriptor and is only used until model creation at system start up.
  `void`
  `setId(String extensionID)`
  Sets the unique extension Id and is only used until model creation at system start up.
  `String`
  `toString()`

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

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

- ## Constructor Details

  - ### Extension

    public Extension(PluginDescriptor pDescriptor, String pExtensionPoint, String pId, String pExtensionClass, Configuration conf, PluginRepository pluginRepository)
    Parameters:
      `pDescriptor` - a plugin descriptor
      `pExtensionPoint` - an extension point
      `pId` - an unique id of the plugin
      `pExtensionClass` - the class extending the extension point
      `conf` - a populated `Configuration`
      `pluginRepository` - a `PluginRepository` containing all plugin artifacts

- ## Method Details

  - ### getAttribute

    public String getAttribute(String pKey)
    Returns a attribute value, that is setuped in the manifest file and is definied by the extension point xml schema.
    Parameters:
      `pKey` - a key
    Returns:
      String a value

  - ### getClazz

    public String getClazz()
    Returns the full class name of the extension point implementation
    Returns:
      String

  - ### getId

    public String getId()
    Return the unique id of the extension.
    Returns:
      String

  - ### addAttribute

    public void addAttribute(String pKey, String pValue)
    Adds a attribute and is only used until model creation at plugin system start up.
    Parameters:
      `pKey` - a key
      `pValue` - a value

  - ### setClazz

    public void setClazz(String extensionClazz)
    Sets the Class that implement the concret extension and is only used until model creation at system start up.
    Parameters:
      `extensionClazz` - The extensionClasname to set

  - ### setId

    public void setId(String extensionID)
    Sets the unique extension Id and is only used until model creation at system start up.
    Parameters:
      `extensionID` - The extensionID to set

  - ### getTargetPoint

    public String getTargetPoint()
    Get target point
    Returns:
      the Id of the extension point, that is implemented by this extension.

  - ### getExtensionInstance

    public Object getExtensionInstance() throws PluginRuntimeException
    Return an instance of the extension implementation. Before we create a extension instance we startup the plugin if it is not already done. The plugin instance and the extension instance use the same `PluginClassLoader`. Each Plugin uses its own classloader. The `PluginClassLoader` knows only its own plugin runtime libraries defined in the `plugin.xml` manifest file and exported libraries of the dependent plugins.
    Returns:
      Object An instance of the extension implementation
    Throws:
      `PluginRuntimeException` - if there is a fatal runtime error

  - ### getDescriptor

    public PluginDescriptor getDescriptor()
    Get the plugin descriptor.
    Returns:
      PluginDescriptor

  - ### setDescriptor

    public void setDescriptor(PluginDescriptor pDescriptor)
    Sets the plugin descriptor and is only used until model creation at system start up.
    Parameters:
      `pDescriptor` - a instantiated `PluginDescriptor`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`