Package net.shibboleth.idp.profile.interceptor

# Class ProfileInterceptorFlowDescriptor

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent
net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent
net.shibboleth.idp.profile.interceptor.ProfileInterceptorFlowDescriptor

All Implemented Interfaces:
  `Predicate<ProfileRequestContext>`, `FlowDescriptor`, `Component`, `DestructableComponent`, `IdentifiableComponent`, `IdentifiedComponent`, `InitializableComponent`

Direct Known Subclasses:
  `ConsentFlowDescriptor`

public class ProfileInterceptorFlowDescriptor extends AbstractIdentifiableInitializableComponent implements FlowDescriptor, Predicate<ProfileRequestContext>
A descriptor for a profile interceptor flow.

A profile interceptor flow is designed to be injected into a profile flow to facilitate customization of the profile flow. A profile interceptor flow must include an activation predicate to indicate suitability based on the content of the `ProfileRequestContext`.

## Field Summary

Fields
Modifier and Type
Field
Description
`private Predicate<ProfileRequestContext>`
`activationCondition`
Predicate that must be true for this flow to be usable for a given request.
`static final String`
`FLOW_ID_PREFIX`
Prefix convention for flow IDs.
`private StorageService`
`storageService`
Storage service for the results generated by this flow.
`private boolean`
`supportsNonBrowser`
Whether this flow supports non-browser clients.

## Constructor Summary

Constructors
Constructor
Description
`ProfileInterceptorFlowDescriptor()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`equals(Object obj)`
`StorageService`
`getStorageService()`
Get the storage service.
`int`
`hashCode()`
`boolean`
`isNonBrowserSupported()`
Get whether this flow supports non-browser clients.
`void`
`setActivationCondition(Predicate<ProfileRequestContext> condition)`
Set the activation condition in the form of a `Predicate` such that iff the condition evaluates to true should the corresponding flow be allowed/possible.
`void`
`setNonBrowserSupported(boolean isSupported)`
Set whether this flow supports non-browser clients.
`void`
`setStorageService(StorageService service)`
Set the storage service.
`boolean`
`test(ProfileRequestContext input)`
`String`
`toString()`

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

`setId`

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

`doInitialize, ensureId, getId, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException`

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

`checkComponentActive, checkSetterPreconditions, destroy, doDestroy, initialize, isDestroyed, isInitialized`

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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

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

`destroy, isDestroyed`

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

`setId`

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

`getId`

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

`initialize, isInitialized`

### Methods inherited from interface java.util.function.Predicate

`and, negate, or`

## Field Details

### FLOW_ID_PREFIX

@Nonnull @NotEmpty public static final String FLOW_ID_PREFIX
Prefix convention for flow IDs.

See Also:
  - Constant Field Values

### activationCondition

@Nonnull private Predicate<ProfileRequestContext> activationCondition
Predicate that must be true for this flow to be usable for a given request.

### storageService

@Nullable private StorageService storageService
Storage service for the results generated by this flow.

### supportsNonBrowser

private boolean supportsNonBrowser
Whether this flow supports non-browser clients.

## Constructor Details

### ProfileInterceptorFlowDescriptor

public ProfileInterceptorFlowDescriptor()
Constructor.

## Method Details

### setActivationCondition

public void setActivationCondition(@Nonnull Predicate<ProfileRequestContext> condition)
Set the activation condition in the form of a `Predicate` such that iff the condition evaluates to true should the corresponding flow be allowed/possible.

Parameters:
  `condition` - predicate that controls activation of the flow

### isNonBrowserSupported

public boolean isNonBrowserSupported()
Get whether this flow supports non-browser clients.

Returns:
  whether this flow supports non-browser clients

### setNonBrowserSupported

public void setNonBrowserSupported(boolean isSupported)
Set whether this flow supports non-browser clients.

Parameters:
  `isSupported` - whether this flow supports non-browser clients

### getStorageService

@Nullable public StorageService getStorageService()
Get the storage service.

Returns:
  the storage service

### setStorageService

public void setStorageService(@Nonnull StorageService service)
Set the storage service.

Parameters:
  `service` - the storage service

### test

public boolean test(@Nullable ProfileRequestContext input)

Specified by:
  `test` in interface `Predicate<ProfileRequestContext>`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`

### equals

public boolean equals(Object obj)

Overrides:
  `equals` in class `Object`

### toString

public String toString()

Overrides:
  `toString` in class `Object`