Class AddStatusToResponse

All Implemented Interfaces:
Component, DestructableComponent, InitializableComponent, ProfileAction

public class AddStatusToResponse extends AbstractProfileAction
Action that sets Status content in a StatusResponseType obtained from a lookup strategy, typically from the outbound message context.

If the message already contains status information, this action will overwrite it.

Options allows for the creation of a StatusMessage either explicitly, or via lookup strategy.

Event:
EventIds.PROCEED_EVENT_ID, EventIds.INVALID_MSG_CTX
  • Field Details

  • Constructor Details

    • AddStatusToResponse

      public AddStatusToResponse()
      Constructor.
  • Method Details

    • setResponseLookupStrategy

      public void setResponseLookupStrategy(@Nonnull Function<ProfileRequestContext,StatusResponseType> strategy)
      Set the strategy used to locate the StatusResponseType to operate on.
      Parameters:
      strategy - strategy used to locate the StatusResponseType to operate on
    • setDetailedErrorsCondition

      public void setDetailedErrorsCondition(@Nonnull Predicate<ProfileRequestContext> condition)
      Set the predicate used to determine the detailed errors condition.
      Parameters:
      condition - predicate for detailed errors condition
    • setStatusCodesLookupStrategy

      public void setStatusCodesLookupStrategy(@Nullable Function<ProfileRequestContext,List<String>> strategy)
      Set the optional strategy used to obtain status codes to include.
      Parameters:
      strategy - strategy used to obtain status codes
    • setStatusMessageLookupStrategy

      public void setStatusMessageLookupStrategy(@Nullable Function<ProfileRequestContext,String> strategy)
      Set the optional strategy used to obtain a status message to include.
      Parameters:
      strategy - strategy used to obtain a status message
    • setStatusCodes

      public void setStatusCodes(@Nonnull List<String> codes)
      Set the list of status code values to insert, ordered such that the top level code is first and every other code will be nested inside the previous one.
      Parameters:
      codes - list of status code values to insert
    • setStatusMessage

      public void setStatusMessage(@Nullable String message)
      Set a default status message to use in the event that error detail is off, or no specific message is obtained.
      Parameters:
      message - default status message
    • doPreExecute

      protected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext)
      Overrides:
      doPreExecute in class AbstractProfileAction
    • doExecute

      protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)
      Overrides:
      doExecute in class AbstractProfileAction
    • buildStatusCode

      private void buildStatusCode(@Nonnull Status status, @Nonnull List<String> codes)
      Build and attach StatusCode element.
      Parameters:
      status - the element to attach to
      codes - the status codes to use
    • buildStatusMessage

      private void buildStatusMessage(@Nonnull Status status, @Nonnull @NotEmpty String message)
      Build and attach StatusMessage element.
      Parameters:
      status - the element to attach to
      message - the message to set