Class AbstractProfileConfiguration

All Implemented Interfaces:
ProfileConfiguration, Component, DestructableComponent, IdentifiableComponent, IdentifiedComponent, InitializableComponent
Direct Known Subclasses:
AbstractConditionalProfileConfiguration, BasicAdministrativeFlowDescriptor

public abstract class AbstractProfileConfiguration
extends AbstractIdentifiableInitializableComponent
implements ProfileConfiguration
Base class for ProfileConfiguration implementations.
  • Field Details

    • DEFAULT_DISALLOWED_FEATURES

      @Nonnull public static final Integer DEFAULT_DISALLOWED_FEATURES
      Default value for disallowedFeatures property.
    • log

      @Nonnull private final org.slf4j.Logger log
      Class logger.
    • inboundFlowsLookupStrategy

      @Nonnull private Function<ProfileRequestContext,​List<String>> inboundFlowsLookupStrategy
      Lookup function to supply inboundFlows property.
    • outboundFlowsLookupStrategy

      @Nonnull private Function<ProfileRequestContext,​List<String>> outboundFlowsLookupStrategy
      Lookup function to supply #outboundFlows property.
    • securityConfigurationLookupStrategy

      @Nonnull private Function<ProfileRequestContext,​SecurityConfiguration> securityConfigurationLookupStrategy
      Lookup function to supply securityConfiguration property.
    • disallowedFeaturesLookupStrategy

      @Nonnull private Function<ProfileRequestContext,​Integer> disallowedFeaturesLookupStrategy
      Lookup function to return a bitmask of request features to disallow.
  • Constructor Details

    • AbstractProfileConfiguration

      public AbstractProfileConfiguration​(@Nonnull @NotEmpty @ParameterName(name="id") String id)
      Constructor.
      Parameters:
      id - ID of the communication profile, never null or empty
  • Method Details

    • getSecurityConfiguration

      @Nullable public SecurityConfiguration getSecurityConfiguration​(@Nullable ProfileRequestContext profileRequestContext)
      Get the SecurityConfiguration to use with this profile.
      Specified by:
      getSecurityConfiguration in interface ProfileConfiguration
      Parameters:
      profileRequestContext - current profile request context
      Returns:
      security configuration to use with this profile
    • setSecurityConfiguration

      public void setSecurityConfiguration​(@Nullable SecurityConfiguration configuration)
      Sets the security configuration for this profile.
      Parameters:
      configuration - security configuration for this profile
    • setSecurityConfigurationLookupStrategy

      public void setSecurityConfigurationLookupStrategy​(@Nonnull Function<ProfileRequestContext,​SecurityConfiguration> strategy)
      Set a lookup strategy for the security configuration.
      Parameters:
      strategy - lookup strategy
      Since:
      3.3.0
    • getInboundInterceptorFlows

      @Nonnull @NonnullElements @NotLive @Unmodifiable public List<String> getInboundInterceptorFlows​(@Nullable ProfileRequestContext profileRequestContext)
      Get an ordered list of interceptor flows to run for this profile after an inbound message is decoded.

      The flow IDs returned MUST NOT contain the ProfileInterceptorFlowDescriptor.FLOW_ID_PREFIX prefix common to all interceptor flows.

      Specified by:
      getInboundInterceptorFlows in interface ProfileConfiguration
      Parameters:
      profileRequestContext - current profile request context
      Returns:
      a set of interceptor flow IDs to enable
    • setInboundInterceptorFlows

      public void setInboundInterceptorFlows​(@Nullable @NonnullElements Collection<String> flows)
      Set the ordered collection of inbound interceptor flows to enable.
      Parameters:
      flows - flow identifiers to enable
    • setInboundFlowsLookupStrategy

      public void setInboundFlowsLookupStrategy​(@Nonnull Function<ProfileRequestContext,​List<String>> strategy)
      Set a lookup strategy for the inbound interceptor flows to enable.
      Parameters:
      strategy - lookup strategy
      Since:
      3.3.0
    • getOutboundInterceptorFlows

      @Nonnull @NonnullElements @NotLive @Unmodifiable public List<String> getOutboundInterceptorFlows​(@Nullable ProfileRequestContext profileRequestContext)
      Get an ordered list of interceptor flows to run for this profile before a final outbound message is generated.

      The flow IDs returned MUST NOT contain the ProfileInterceptorFlowDescriptor.FLOW_ID_PREFIX prefix common to all interceptor flows.

      Specified by:
      getOutboundInterceptorFlows in interface ProfileConfiguration
      Parameters:
      profileRequestContext - current profile request context
      Returns:
      a set of interceptor flow IDs to enable
    • setOutboundInterceptorFlows

      public void setOutboundInterceptorFlows​(@Nullable @NonnullElements Collection<String> flows)
      Set the ordered collection of outbound interceptor flows to enable.
      Parameters:
      flows - flow identifiers to enable
    • setOutboundFlowsLookupStrategy

      public void setOutboundFlowsLookupStrategy​(@Nonnull Function<ProfileRequestContext,​List<String>> strategy)
      Set a lookup strategy for the outbound interceptor flows to enable.
      Parameters:
      strategy - lookup strategy
      Since:
      3.3.0
    • isFeatureDisallowed

      public boolean isFeatureDisallowed​(@Nullable ProfileRequestContext profileRequestContext, int feature)
      Return true iff the input feature constant is disallowed.
      Parameters:
      profileRequestContext - current profile request context
      feature - a bit constant
      Returns:
      true iff the input feature constant is disallowed
      Since:
      3.3.0
    • getDisallowedFeatures

      public int getDisallowedFeatures​(@Nullable ProfileRequestContext profileRequestContext)
      Get a bitmask of disallowed features to block.

      Individual profiles define their own feature constants.

      Parameters:
      profileRequestContext - current profile request context
      Returns:
      bitmask of features to block
      Since:
      3.3.0
    • setDisallowedFeatures

      public void setDisallowedFeatures​(int mask)
      Set a bitmask of disallowed features to block.
      Parameters:
      mask - a bitmask of features to block
      Since:
      3.3.0
    • setDisallowedFeaturesLookupStrategy

      public void setDisallowedFeaturesLookupStrategy​(@Nonnull Function<ProfileRequestContext,​Integer> strategy)
      Set a lookup strategy for the bitmask of disallowed features to block.
      Parameters:
      strategy - lookup strategy
      Since:
      3.3.0
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals​(Object obj)
      Overrides:
      equals in class Object