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

    All Methods Instance Methods Concrete Methods
    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 Detail

    - #### 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 Detail

    - #### 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`