/* * JBoss, Home of Professional Open Source * * Distributable under LGPL license. * See terms of license at gnu.org. */ package org.jboss.seam.annotations.bpm; import static java.lang.annotation.ElementType.METHOD; import static java.lang.annotation.RetentionPolicy.RUNTIME; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.Target; import org.jboss.seam.annotations.FlushModeType; /** * Marks a method as causing a jBPM {@link org.jbpm.taskmgmt.exe.TaskInstance task} * to be resumed. The jBPM {@link org.jbpm.context.exe.ContextInstance} * is associated with the BUSINESS_PROCESS scope and the * {@link org.jbpm.taskmgmt.exe.TaskInstance} is associated with a new * conversation, unless the annotated method returns a null outcome. * <p/> * Note that both {@link BeginTask} and {@link StartTask} have effect * before invocation of the intercepted method in that they are both * about setting up appropriate {@link org.jbpm.context.exe.ContextInstance} * for the current {@link org.jboss.seam.contexts.BusinessProcessContext}. * <p/> * * @author Steve Ebersole */ @Target(METHOD) @Retention(RUNTIME) @Documented public @interface BeginTask { /** * The name of the request parameter under which we should locate the * the id of task to be resumed. */ String taskIdParameter() default ""; /** * An EL expression that evaluates to the task id. * @return an EL expression */ String taskId() default "#{param.taskId}"; /** * The name of the jBPM process definition defining the page flow for * this conversation. */ String pageflow() default ""; /** * An EL expression for the conversation id. If a conversation with * the same id aready exists, Seam will redirect to that conversation. * * @deprecated use <conversation/> in pages.xml */ String id() default ""; /** * Set the FlushMode for any EntityManager used in * this conversation. */ FlushModeType flushMode() default FlushModeType.AUTO; }