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

      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