Package org.opensaml.soap.wsaddressing.messaging.impl

# Class AddRelatesToHandler

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.messaging.handler.AbstractMessageHandler
org.opensaml.soap.messaging.AbstractHeaderGeneratingMessageHandler
org.opensaml.soap.wsaddressing.messaging.impl.AddRelatesToHandler

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

public class AddRelatesToHandler extends AbstractHeaderGeneratingMessageHandler
Handler implementation that adds a wsa:RelatesTo header to the outbound SOAP envelope.

## Field Summary

Fields
Modifier and Type
Field
Description
`private org.slf4j.Logger`
`log`
Logger.
`private String`
`relatesToURI`
The effective RelatesTo URI value to use.
`private ContextDataLookupFunction<MessageContext,String>`
`relatesToURILookup`
Optional lookup function for obtaining the RelatesTo URI value.
`private String`
`relationshipType`
The effective RelatesTo RelationshipType attribute value to use.

## Constructor Summary

Constructors
Constructor
Description
`AddRelatesToHandler()`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doInvoke(MessageContext messageContext)`
Performs the handler logic.
`protected boolean`
`doPreInvoke(MessageContext messageContext)`
Called prior to execution, handlers may override this method to perform pre-processing for a request.
`ContextDataLookupFunction<MessageContext,String>`
`getRelatesToURILookup()`
Get the function for looking up the RelatesTo URI value.
`String`
`getRelationshipType()`
Get the RelatesTo RelationshipType attribute value to use.
`void`
`setRelatesToURILookup(ContextDataLookupFunction<MessageContext,String> lookup)`
Set the function for looking up the RelatesTo URI value.
`void`
`setRelationshipType(String value)`
Set the RelatesTo RelationshipType attribute value to use.

### Methods inherited from class org.opensaml.soap.messaging.AbstractHeaderGeneratingMessageHandler

`decorateGeneratedHeader, getEffectiveTargetNode, isEffectiveMustUnderstand, setMustUnderstand, setMustUnderstandStrategy, setTargetNode, setTargetNodeStrategy`

### Methods inherited from class org.opensaml.messaging.handler.AbstractMessageHandler

`doPostInvoke, doPostInvoke, getActivationCondition, getLogPrefix, invoke, isPreInvokeCalled, setActivationCondition`

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

`checkComponentActive, checkSetterPreconditions, destroy, doDestroy, 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

### log

@Nonnull private org.slf4j.Logger log
Logger.

### relatesToURILookup

@Nullable private ContextDataLookupFunction<MessageContext,String> relatesToURILookup
Optional lookup function for obtaining the RelatesTo URI value.

### relatesToURI

@Nullable private String relatesToURI
The effective RelatesTo URI value to use.

### relationshipType

@Nullable private String relationshipType
The effective RelatesTo RelationshipType attribute value to use.

## Constructor Details

### AddRelatesToHandler

public AddRelatesToHandler()

## Method Details

### getRelatesToURILookup

@Nullable public ContextDataLookupFunction<MessageContext,String> getRelatesToURILookup()
Get the function for looking up the RelatesTo URI value.

Returns:
  the lookup function

### setRelatesToURILookup

public void setRelatesToURILookup(@Nullable ContextDataLookupFunction<MessageContext,String> lookup)
Set the function for looking up the RelatesTo URI value.

Parameters:
  `lookup` - the lookup function

### getRelationshipType

@Nullable public String getRelationshipType()
Get the RelatesTo RelationshipType attribute value to use.

Returns:
  the relationship type

### setRelationshipType

public void setRelationshipType(@Nullable String value)
Set the RelatesTo RelationshipType attribute value to use.

Parameters:
  `value` - the relationship type

### doPreInvoke

protected boolean doPreInvoke(@Nonnull MessageContext messageContext) throws MessageHandlerException
Called prior to execution, handlers may override this method to perform pre-processing for a request.

The default impl applies the `Predicate` set via the `AbstractMessageHandler.setActivationCondition(Predicate)`.

If false is returned, execution will not proceed.

Subclasses which override this method should generally invoke the super version of this method first, so that the activation condition will be applied up front, and immediately return false if the super version returns false. This avoids unnecessary execution of the remaining pre-invocation code if the handler ultimately will not execute.

Overrides:
  `doPreInvoke` in class `AbstractHeaderGeneratingMessageHandler`
Parameters:
  `messageContext` - the message context on which to invoke the handler
Returns:
  true iff execution should proceed
Throws:
  `MessageHandlerException` - if there is a problem executing the handler pre-routine

### doInvoke

protected void doInvoke(@Nonnull MessageContext messageContext) throws MessageHandlerException
Performs the handler logic.

Specified by:
  `doInvoke` in class `AbstractMessageHandler`
Parameters:
  `messageContext` - the message context on which to invoke the handler
Throws:
  `MessageHandlerException` - if there is an error invoking the handler on the message context