Package org.opensaml.profile.action

# Class AbstractHandlerDelegatingProfileAction<DelegateType extends MessageHandler>

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.profile.action.AbstractProfileAction
org.opensaml.profile.action.AbstractConditionalProfileAction
org.opensaml.profile.action.AbstractHandlerDelegatingProfileAction<DelegateType>

Type Parameters:
  `DelegateType` - type of MessageHandler to which to delegate.

All Implemented Interfaces:
  `Component`, `DestructableComponent`, `InitializableComponent`, `ProfileAction`

Direct Known Subclasses:
  `PopulateSignatureSigningParameters`, `PopulateSignatureValidationParameters`

public abstract class AbstractHandlerDelegatingProfileAction<DelegateType extends MessageHandler> extends AbstractConditionalProfileAction
Base class for a profile action which just delegates to an instance of `MessageHandler`.

## Field Summary

Fields
Modifier and Type
Field
Description
`private DelegateType`
`delegate`
The message handler delegate.
`private String`
`errorEvent`
An event to signal in the event of a handler exception.
`private ContextDataLookupFunction<ProfileRequestContext,MessageContext>`
`messageContextLookup`
Lookup function for the message context on which to operate.
`private static final ParentProfileRequestContextLookup<MessageContext>`
`PRC_LOOKUP`
Lookup function for parent ProfileRequestContext.

## Constructor Summary

Constructors
Constructor
Description
`AbstractHandlerDelegatingProfileAction(DelegateType delegateInstance, ContextDataLookupFunction<ProfileRequestContext,MessageContext> lookup)`
Constructor.
`AbstractHandlerDelegatingProfileAction(Class<DelegateType> delegateClass, ContextDataLookupFunction<ProfileRequestContext,MessageContext> lookup)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected <T> Function<MessageContext,T>`
`adapt(Function<ProfileRequestContext,T> function)`
Adapt a `ProfileRequestContext` function to a `MessageContext` function via composing with a lookup function.
`protected Predicate<MessageContext>`
`adapt(Predicate<ProfileRequestContext> predicate)`
Adapt a `ProfileRequestContext` predicate into a `MessageContext` predicate via composing with a lookup function.
`protected <T> Function<MessageContext,T>`
`adaptRequired(Function<ProfileRequestContext,T> function)`
Adapt a `ProfileRequestContext` function to a `MessageContext` function via composing with a lookup function, disallowing nulls.
`protected void`
`doDestroy()`
`protected void`
`doExecute(ProfileRequestContext profileRequestContext)`
Performs this action.
`protected DelegateType`
`getDelegate()`
Get the delegate instance.
`void`
`setErrorEvent(String event)`
Set the event to signal in the event of a handler exception.

### Methods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction

`doPreExecute, getActivationCondition, setActivationCondition`

### Methods inherited from class org.opensaml.profile.action.AbstractProfileAction

`doPostExecute, doPostExecute, ensureHttpServletRequest, ensureHttpServletResponse, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, isPreExecuteCalled, setHttpServletRequestSupplier, setHttpServletResponseSupplier`

### Methods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent

`checkComponentActive, checkSetterPreconditions, destroy, doInitialize, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitialized`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface net.shibboleth.shared.component.InitializableComponent

`initialize, isInitialized`

## Field Details

### PRC_LOOKUP

@Nonnull private static final ParentProfileRequestContextLookup<MessageContext> PRC_LOOKUP
Lookup function for parent ProfileRequestContext.

### delegate

@Nonnull private DelegateType extends MessageHandler delegate
The message handler delegate.

### messageContextLookup

@Nonnull private ContextDataLookupFunction<ProfileRequestContext,MessageContext> messageContextLookup
Lookup function for the message context on which to operate.

### errorEvent

@Nullable private String errorEvent
An event to signal in the event of a handler exception.

## Constructor Details

### AbstractHandlerDelegatingProfileAction

public AbstractHandlerDelegatingProfileAction(@Nonnull Class<DelegateType> delegateClass, @Nonnull ContextDataLookupFunction<ProfileRequestContext,MessageContext> lookup)
Constructor.

Parameters:
  `delegateClass` - the delegate class. Must have a no-argument constructor. For those that do not, instead pass in a pre-constructed instance via `AbstractHandlerDelegatingProfileAction(MessageHandler, ContextDataLookupFunction)`.
  `lookup` - the lookup function for the message context on which to operate, typically for either the inbound or outbound context

### AbstractHandlerDelegatingProfileAction

public AbstractHandlerDelegatingProfileAction(@Nonnull DelegateType delegateInstance, @Nonnull ContextDataLookupFunction<ProfileRequestContext,MessageContext> lookup)
Constructor.

Parameters:
  `delegateInstance` - the delegate instance
  `lookup` - the lookup function for the message context on which to operate, typically for either the inbound or outbound context

## Method Details

### setErrorEvent

public void setErrorEvent(@Nullable String event)
Set the event to signal in the event of a handler exception.

Parameters:
  `event` - event to signal

### doDestroy

protected void doDestroy()

Overrides:
  `doDestroy` in class `AbstractInitializableComponent`

### getDelegate

@Nonnull protected DelegateType getDelegate()
Get the delegate instance.

Returns:
  the delegate instance

### adapt

@Nullable protected Predicate<MessageContext> adapt(@Nullable Predicate<ProfileRequestContext> predicate)
Adapt a `ProfileRequestContext` predicate into a `MessageContext` predicate via composing with a lookup function.

Parameters:
  `predicate` - the profile request context predicate
Returns:
  the message context predicate

### adapt

@Nullable protected <T> Function<MessageContext,T> adapt(@Nullable Function<ProfileRequestContext,T> function)
Adapt a `ProfileRequestContext` function to a `MessageContext` function via composing with a lookup function.

Type Parameters:
  `T` - the output type of the functions
Parameters:
  `function` - the profile request context function
Returns:
  the message context function

### adaptRequired

@Nonnull protected <T> Function<MessageContext,T> adaptRequired(@Nonnull Function<ProfileRequestContext,T> function)
Adapt a `ProfileRequestContext` function to a `MessageContext` function via composing with a lookup function, disallowing nulls.

Type Parameters:
  `T` - the output type of the functions
Parameters:
  `function` - the profile request context function
Returns:
  the message context function
Since:
  5.0.0

### doExecute

protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)
Performs this action. Actions must override this method to perform their work.

Overrides:
  `doExecute` in class `AbstractProfileAction`
Parameters:
  `profileRequestContext` - the current IdP profile request context