All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.fluidbpm.program.api.ICustomWebAction Maven / Gradle / Ivy

/*
 * Koekiebox CONFIDENTIAL
 *
 * [2012] - [2017] Koekiebox (Pty) Ltd
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains the property
 * of Koekiebox and its suppliers, if any. The intellectual and
 * technical concepts contained herein are proprietary to Koekiebox
 * and its suppliers and may be covered by South African and Foreign Patents,
 * patents in process, and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material is strictly
 * forbidden unless prior written permission is obtained from Koekiebox.
 */

package com.fluidbpm.program.api;

import java.util.List;

import com.fluidbpm.program.api.vo.form.Form;
import com.fluidbpm.program.api.vo.item.FluidItem;

/**
 * Implement this interface when you want Fluid to execute
 * a custom action when performing actions from a {@code Form}.
 *
 * Default action is Save.
 *
 * The schedules are configured within Fluid.
 *
 * @author jasonbruwer
 * @since v1.0
 *
 * @see Form
 * @see FluidItem
 *
 */
public interface ICustomWebAction extends IActionBase {

	/**
	 * Execute Order (2)
	 *
	 * May be 'Save' to apply when saving a Form.
	 * Any other ActionIdentifier will be part of an
	 * additional action that would not necessarily safe the form.
	 *
	 * @return The Fluid Implementation Unique Action Identifier.
	 */
	public abstract String getActionIdentifier();

	/**
	 * Execute Order (3)
	 *
	 * @return The {@code List} of Fluid Form Definition / Form Types
	 *         That will be applicable to the Custom Web Action.
	 */
	public abstract List getAllowedFormDefinitions();

	/**
	 * Execute Order (4)
	 *
	 * @param fluidItemParam The current open {@code FluidItem}.
	 * @return A {@code List} that may include new Fluid Items to create or update.
	 * @throws Exception If any problems occur during execution.
	 *         The FlowItem will be moved into an Erroneous state.
	 * @see FluidItem
	 */
	public abstract List execute(FluidItem fluidItemParam) throws Exception;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy