Class 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 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