/* * 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; /** * Marks a method as causing a jBPM * {@link org.jbpm.taskmgmt.exe.TaskInstance task instance} * to be ended. The current conversation also ends. If a list of outcomes * is specified, the task ends only if the outcome is in the list. A null * outcome never ends the task. * * @see org.jbpm.taskmgmt.exe.TaskInstance#end(String) * @author Gavin King */ @Target(METHOD) @Retention(RUNTIME) @Documented public @interface EndTask { /** * An empty outcome list is interpreted to mean any * outcome except for the null (redisplay) outcome. * * @deprecated use BusinessProcess.instance().end("...") and * Conversation.instance().end() */ String[] ifOutcome() default {}; /** * Specifies the transition that should be triggered by * completing the task. If the transition needs to be * specified dynamically, use the Seam <tt>transition</tt> * component, calling <tt>Transition.setName()<tt>. * * @return a transition name */ String transition() default ""; /** * Should the conversation be destroyed before any * redirect? (The default behavior is to propagate * the conversation across the redirect and then * destroy it at the end of the redirected request.) * * @return false by default */ boolean beforeRedirect() default false; }