2.17.2: 2011-06-17

net.sf.basedb.util.extensions
Interface ExtensionPoint<A extends Action>

All Known Implementing Classes:
ExtensionPointBean, Registry.RegisteredExtensionPoint

public interface ExtensionPoint<A extends Action>

An extension point is a place, defined by a client application, that can be extended. Each extension point is identified by an ID which must be unique. We recommend that ID:s are generated in the same way as Java package names. An extension point must also define what kind of Action it is possible to add to it. This is done with the getActionClass(). It is also possible to define a default render class and if an extension is allowed to override it or not.

Extension points can, for example, be created:

Before extension points can be used the must be registered with Registry.registerExtensionPoint(ExtensionPoint). Extensions to an extension point are registered in the same registry with Registry.registerExtension(Extension). To load and use all registered extensions use Registry.useExtensions(ClientContext, ExtensionsFilter, String...).

Version:
2.7
Author:
nicklas
See Also:
ExtensionPointBean, XmlLoader
Last modified
$Date:2008-03-20 12:15:25 +0100 (Thu, 20 Mar 2008) $

Method Summary
 boolean allowRendererOverride()
          If an extension is allowed to override the renderer factory with an implementation of its own.
 Class<A> getActionClass()
          Get the class object that represents the type of action that can be added to this extension point.
 String getDescription()
          Get a description of the extension point.
 ErrorHandlerFactory<? super A> getErrorHandlerFactory()
          Get the error handler factory that should be used with this extension point.
 String getId()
          Get the ID of the extension point.
 String getName()
          Get the name of the extension point.
 RendererFactory<? super A> getRendererFactory()
          This is an optional factory for creating Renderer instances.
 

Method Detail

getId

String getId()
Get the ID of the extension point.

Returns:
A non-null unique identifier value

getName

String getName()
Get the name of the extension point. This is just for display purposes and the value is optional. If no name is given the ID can be used instead.


getDescription

String getDescription()
Get a description of the extension point. This value is optional but we recommend that the description contains a text documenting the extension point and has information that is useful for everyone who wants to implement extensions for the extension point. This should include context specific information.

Returns:
An optional description

getActionClass

Class<A> getActionClass()
Get the class object that represents the type of action that can be added to this extension point. The class must implement the Action interface. Extensions that are extending this extension point must provide an ActionFactory that is capable of creating instances of the specified class.

Returns:
The class of the actions that can be used on this extension point (required)

getRendererFactory

RendererFactory<? super A> getRendererFactory()
This is an optional factory for creating Renderer instances. Renderers are not a required part of the extension system, but will make it easier to write the code for extension points.

Returns:
A renderer factory or null

allowRendererOverride

boolean allowRendererOverride()
If an extension is allowed to override the renderer factory with an implementation of its own. This can be seen as a possibility where extensions can create their own look and feel. If strict compliance is needed overriding should of course not be allowed.

Returns:
TRUE to allow extensions to override, FALSE otherwise

getErrorHandlerFactory

ErrorHandlerFactory<? super A> getErrorHandlerFactory()
Get the error handler factory that should be used with this extension point.

Returns:
An error handler factory, or null to use the system default
Since:
2.17

2.17.2: 2011-06-17