Class InvokationContext<A extends Action>

java.lang.Object
net.sf.basedb.util.extensions.InvokationContext<A>
Direct Known Subclasses:
ExtensionContext, ExtensionPointContext

public abstract class InvokationContext<A extends Action>
extends Object
Keeps contextual information about a single invokation of extensions. The Registry.useExtensions(ClientContext, ExtensionsFilter, String...) will create invokation contexts for each enabled extension that extends any of the given extension points.

Instances of this class are passed to factory methods, for example ActionFactory.getActions(InvokationContext) to make it possible for the factories to know anything about the context the extension was invoked in.

Do not confuse the invokation context with the a ClientContext object. The invokation context contains the client context (see getClientContext() but has also a lot more information collected from other parts of the extensions system.

Version:
2.7
Author:
nicklas
Last modified
$Date: 2012-03-28 12:38:04 +0200 (on, 28 mar 2012) $
  • Constructor Details

    • InvokationContext

      protected InvokationContext()
  • Method Details

    • getClientContext

      public abstract ClientContext getClientContext()
      Get the client context that was passed to the Registry.useExtensions(ClientContext, ExtensionsFilter, String...) method.
      Returns:
      The client context, or null if the client didn't pass any context object
    • getExtensionPoint

      public abstract ExtensionPoint<? super A> getExtensionPoint()
      Get information about the extension point.
      Returns:
      An extension point object
    • getExtension

      public abstract Extension<A> getExtension()
      Get information about the extension. This method may return null if there is no current extension, which happens when any of the RendererFactory methods are called for a renderer factory attached to an extension point and for the ErrorHandlerFactory methods.
      Returns:
      An extension object, or null if there is no current extension
    • getClassLoader

      public abstract ClassLoader getClassLoader()
      Get the class loader that is used for the given extension or extension point.
      Since:
      3.2
    • getAttribute

      public abstract Object getAttribute​(String name)
      Get the value of an attribute that has been registered for the extension.
      Parameters:
      name - The name of the attribute
      Returns:
      The attribute value, or null if no attribute has been registered
      See Also:
      Registry.getAttribute(String, String)
    • getRegistry

      protected abstract Registry getRegistry()
      Get the registry where this invokation originated from.
    • prepareRendererFactory

      protected abstract void prepareRendererFactory()
      Prepare the renderer factory if the extension or extension point has one.
    • getRenderer

      protected abstract Renderer<? super A> getRenderer()
      Get the renderer, if any. This method should always return the same rendere instance if called multiple times on the same object.
    • getActions

      protected abstract A[] getActions()
      Get the actions, or null if there is no current extension.
    • setError

      protected abstract void setError​(A action, Throwable t)
      Register an error for the current extension or extension point. Registered errors can be retrieved by Registry.getLastExtensionError(String) and Registry.getLastExtensionPointError(String)
      Parameters:
      action - The action that caused the error
      t - The error
      Since:
      2.9
    • clearError

      protected abstract void clearError()
      Clear the registered error for the current extension or extension point.
      Since:
      2.9
    • getErrorHandler

      protected abstract ErrorHandler<? super A> getErrorHandler()
      Get the error handler used in this context. Should never be null, since if not the extension point provides one, the system should.
      Since:
      2.17