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

com.day.cq.workflow.model.WorkflowNode Maven / Gradle / Ivy

/*
 * Copyright 1997-2008 Day Management AG
 * Barfuesserplatz 6, 4001 Basel, Switzerland
 * All Rights Reserved.
 *
 * This software is the confidential and proprietary information of
 * Day Management AG, ("Confidential Information"). You shall not
 * disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into
 * with Day.
 */
package com.day.cq.workflow.model;

import com.day.cq.workflow.HasMetaData;

import java.util.List;

/**
 * WorkflowNode represents a node/step in a
 * {@link WorkflowModel}.
 */
public interface WorkflowNode extends HasMetaData {
    public static final String TYPE_START = "START";
    public static final String TYPE_END = "END";
    public static final String TYPE_AND_SPLIT = "AND_SPLIT";
    public static final String TYPE_AND_JOIN = "AND_JOIN";
    public static final String TYPE_OR_SPLIT = "OR_SPLIT";
    public static final String TYPE_OR_JOIN = "OR_JOIN";
    public static final String TYPE_PROCESS = "PROCESS";
    public static final String TYPE_CONTAINER = "CONTAINER";
    public static final String TYPE_PARTICIPANT = "PARTICIPANT";
    public static final String TYPE_DYNAMIC_PARTICIPANT = "DYNAMIC_PARTICIPANT";
    public static final String TYPE_EXTERNAL_PROCESS = "EXTERNAL_PROCESS";
    
	/**
	 * Returns the ID of the WorkflowNode.
	 * 
	 * @return ID of the WorkflowNode.
	 */
	String getId();

	/**
	 * Returns the type of the WorkflowNode. Must be unique
	 * across all available types of WorkflowNodes.
	 * 
	 * @return The type of the WorkflowNode.
	 */
	String getType();

	/**
	 * Sets the type of the WorkflowNode. Must be unique across
	 * all available types of WorkflowNodes.
	 * 
	 * @param type
	 *            The new type the the WorkflowNode.
	 */
	void setType(String type);

	/**
	 * Returns the description of the WorkflowNode.
	 * 
	 * @return The description of the WorkflowNode.
	 */
	String getDescription();

	/**
	 * Set the description of the WorkflowNode.
	 * 
	 * @param description
	 *            The new description of the WorkflowNode.
	 */
	void setDescription(String description);

	/**
	 * Returns the outgoing {@link WorkflowTransition}s assigned
	 * to the WorkflowNode.
	 * 
	 * @return {@link WorkflowTransition}s associated with the
	 *         WorkflowNode (only outgoing).
	 */
	List getTransitions();
	
	/**
     * Returns the incoming {@link WorkflowTransition}s assigned
     * to the WorkflowNode.
     * 
     * @return {@link WorkflowTransition}s associated with the
     *         WorkflowNode (only incoming).
     */
    List getIncomingTransitions();

	/**
	 * Returns the WorkflowNodes title.
	 * 
	 * @return The title of the WorkflowNode.
	 */
	String getTitle();

	/**
	 * Sets the title of the WorkflowNode.
	 * 
	 * @param title
	 *            The new title of the WorkflowNode.
	 */
	void setTitle(String title);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy