Interface IPluginFormPrePersist

All Superinterfaces:
IFCPlugin, IFormLifecyclePlugin, INamedUiElement, INameProviding, ITransferable, Serializable

public interface IPluginFormPrePersist extends IFormLifecyclePlugin
Interface for form pre-persist plugins. This plugin is executed when a form was submitted, but before a FormEingang is created and the form data is saved to the database. Contrast this with a plugin of type IPluginFormPreProcess, which is run after a FormEingang was created; and to IPluginFormPreRespond, which is run after the workflow was processed as well.

This plugin offers the option to add an custom check whether the form submission should be prevented or not. When this plugin prevents the form submission, the submitted form data is discarded and no form record is created. The workflow is then not run either.

Author:
XIMA MEDIA GmbH
  • Method Details

    • execute

      The main method of this plugin. Checks and returns whether the form submission is acceptable.

      When any exception other than FCPluginException is thrown, the form will not be persisted and a general error template is returned to the user who submitted the form.

      Parameters:
      params - The parameters this plugin may make use of. Contains the current form request context that may be used to access the submitted form data.
      Returns:
      Whether the form submission should be allowed or prevented.
      Throws:
      FCPluginException - May be thrown when this plugin cannot perform its task due to any reason. If this exception is thrown, the form will still be persisted.
    • shouldExecute

      default boolean shouldExecute(IFormLifecycleShouldExecuteParams params)
      Description copied from interface: IFormLifecyclePlugin
      Optional test to decide whether a form lifecycle plugin should be executed for a particular form request. Use e.g. params.getRequestContext().getRequestType() to check the type of the request.

      Note: Lifecycle plugins may be queued for execution at points were they were not before. Implementations of this method should prefer narrow checks, e.g.

       return params.getFormRequestContext().getRequestType() == EFormRequestType.PROVIDE}
       
      instead of
       return params.getFormRequestContext().getRequestType() != EFormRequestType.PROCESS
       
      Specified by:
      shouldExecute in interface IFormLifecyclePlugin
      Parameters:
      params - Parameters with the current form request.
      Returns:
      true if the plugin should be executed during the lifecycle of the given form request, false otherwise.