2.17.2: 2011-06-17

net.sf.basedb.util.extensions
Class InvokationContext<A extends Action>

java.lang.Object
  extended by 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: 2010-11-12 14:59:38 +0100 (Fri, 12 Nov 2010) $

Constructor Summary
protected InvokationContext()
           
 
Method Summary
protected abstract  void clearError()
          Clear the registered error for the current extension or extension point.
protected abstract  A[] getActions()
          Get the actions, or null if there is no current extension.
abstract  Object getAttribute(String name)
          Get the value of an attribute that has been registered for the extension.
abstract  ClientContext getClientContext()
          Get the client context that was passed to the Registry.useExtensions(ClientContext, ExtensionsFilter, String...)
protected abstract  ErrorHandler<? super A> getErrorHandler()
          Get the error handler used in this context.
abstract  Extension<A> getExtension()
          Get information about the extension.
abstract  ExtensionPoint<? super A> getExtensionPoint()
          Get information about the extension point.
protected abstract  Registry getRegistry()
          Get the registry where this invokation originated from.
protected abstract  Renderer<? super A> getRenderer()
          Get the renderer, if any.
protected abstract  void prepareRendererFactory()
          Prepare the renderer factory if the extension or extension point has one.
protected abstract  void setError(A action, Throwable t)
          Register an error for the current extension or extension point.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InvokationContext

protected InvokationContext()
Method Detail

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

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

2.17.2: 2011-06-17