# Class ExtensionContributionFactory

java.lang.Object
org.eclipse.ui.menus.AbstractContributionFactory
org.eclipse.ui.menus.ExtensionContributionFactory

All Implemented Interfaces:
  `IExecutableExtension`

public abstract class ExtensionContributionFactory extends AbstractContributionFactory implements IExecutableExtension

Clients who wish to contribute factories via the `org.eclipse.ui.menus` extension point should subclass this class rather than the `AbstractContributionFactory` as this class provides a default constructor.

Clients must be aware that the results of `getLocation()` and `getNamespace()` will not be valid until `setInitializationData(IConfigurationElement, String, Object)` is invoked. This will occur before `AbstractContributionFactory.createContributionItems(org.eclipse.ui.services.IServiceLocator, IContributionRoot)` is invoked.

Since:
  3.5

## Constructor Summary

Constructors
Constructor
Description
`ExtensionContributionFactory()`
Create an instance of this class.

## Method Summary

Modifier and Type
Method
Description
`final String`
`getLocation()`
Return the location as a String.
`final String`
`getNamespace()`
Return the namespace for this cache.
`void`
`setInitializationData(IConfigurationElement config, String propertyName, Object data)`
Clients who wish to implement their own `IExecutableExtension` behaviour must invoke this method prior to any customization they perform.

### Methods inherited from class AbstractContributionFactory

`createContributionItems`

### Methods inherited from class Object

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

## Constructor Details

### ExtensionContributionFactory

public ExtensionContributionFactory()
Create an instance of this class.

## Method Details

### getLocation

public final String getLocation()
Description copied from class: `AbstractContributionFactory`
Return the location as a String.

Overrides:
  `getLocation` in class `AbstractContributionFactory`
Returns:
  the location - never `null`.

### getNamespace

public final String getNamespace()
Description copied from class: `AbstractContributionFactory`
Return the namespace for this cache. This corresponds to the plug-in that is contributing this factory.

Overrides:
  `getNamespace` in class `AbstractContributionFactory`
Returns:
  the namespace the namespace of this factory

### setInitializationData

public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException
Clients who wish to implement their own `IExecutableExtension` behaviour must invoke this method prior to any customization they perform.

Specified by:
  `setInitializationData` in interface `IExecutableExtension`
Parameters:
  `config` - the configuration element used to trigger this execution. It can be queried by the executable extension for specific configuration properties
  `propertyName` - the name of an attribute of the configuration element used on the `createExecutableExtension(String)` call. This argument can be used in the cases where a single configuration element is used to define multiple executable extensions.
  `data` - adapter data in the form of a `String`, a `Hashtable`, or `null`.
Throws:
  `CoreException` - so that a subclass may throw this
See Also:
  - `IConfigurationElement.createExecutableExtension(String)`