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

com.day.cq.workflow.exec.WorkItem 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.exec;

import java.util.Date;

import com.day.cq.workflow.HasMetaData;
import com.day.cq.workflow.model.WorkflowModel;
import com.day.cq.workflow.model.WorkflowNode;

/**
 * A WorkItem is the unit that is passed through an
 * {@link Workflow} instance of a
 * {@link WorkflowModel}.
 * 
 * It contains the {@link WorkflowData} the instances acts on and
 * a reference to the {@link WorkflowNode} that describes the underlying
 * workflow step.
 * 
 * A WorkItem can be considered as a token in a petri net that
 * flows through the net during execution.
 */
public interface WorkItem extends HasMetaData {
	/**
	 * Returns the start time of the WorkflowItem.
	 * 
	 * @return The start time of the WorkflowItem.
	 */
	Date getTimeStarted();

    /**
	 * Returns the end time of the WorkflowItem.
	 *
	 * @return The end time of the WorkflowItem.
	 */
	Date getTimeEnded();

    /**
	 * Returns the {@link Workflow} instance assigned with this
	 * WorkflowItem.
	 * 
	 * @return Workflow of the workflow instance assigned with
	 *         the WorkflowItem.
	 */
	Workflow getWorkflow();

	/**
	 * Returns the current {@link WorkflowNode} the
	 * WorkflowItem is attached to.
	 * 
	 * @return The current {@link WorkflowNode} of the
	 *         WorkflowItem.
	 */
	WorkflowNode getNode();

	/**
	 * Returns the ID of the WorkflowItem.
	 * 
	 * @return ID of the WorkflowItem.
	 */
	String getId();

	/**
	 * Returns the {@link WorkflowData} assigned to the
	 * WorkflowItem.
	 * 
	 * @return the {@link WorkflowData} of the
	 *         WorkflowItem.
	 */
	WorkflowData getWorkflowData();

    /**
     * Returns the current assignee, respectively the info in which
     * inbox the workitem "resides".
     *
     * @return current assignee
     */
    String getCurrentAssignee();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy