Package 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:
- Programmatically, using
ExtensionPointBean
object - Loaded from extension definition XML files using a
XmlLoader
. - Or, in any other way by providing a custom implementation of this interface
Before extension points can be used the must be registered with
Registry.registerExtensionPoint(ExtensionPoint, ClassLoader)
. Extensions to
an extension point are registered in the same registry with
Registry.registerExtension(Extension, ClassLoader)
. To load and use all
registered extensions use
Registry.useExtensions(ClientContext, ExtensionsFilter, String...)
.
- Version:
- 2.7
- Author:
- nicklas
- See Also:
- Last modified
- $Date:2008-03-20 12:15:25 +0100 (Thu, 20 Mar 2008) $
-
Method Summary
Modifier and TypeMethodDescriptionboolean
If an extension is allowed to override the renderer factory with an implementation of its own.Get the class object that represents the type of action that can be added to this extension point.Get a description of the extension point.ErrorHandlerFactory<? super A>
Get the error handler factory that should be used with this extension point.getId()
Get the ID of the extension point.getName()
Get the name of the extension point.RendererFactory<? super A>
This is an optional factory for creatingRenderer
instances.
-
Method Details
-
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
Get the class object that represents the type of action that can be added to this extension point. The class must implement theAction
interface. Extensions that are extending this extension point must provide anActionFactory
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 creatingRenderer
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
-