//$Id: Begin.java 9621 2008-11-24 17:31:44Z dan.j.allen $ package org.jboss.seam.annotations; 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 beginning a long-running conversation, * if none exists, and if the method returns a non-null value * without throwing an exception. * * A null outcome never begins a conversation. * If the method is of type void, a conversation always * begins. * * @author Gavin King */ @Target(METHOD) @Retention(RUNTIME) @Documented public @interface Begin { /** * An empty outcome list is interpreted to mean any * outcome except for the null (redisplay) outcome. * * @deprecated use Conversation.instance().begin(); */ String[] ifOutcome() default {}; /** * If enabled, and if a conversation is already active, * begin a nested conversation, instead of continuing * in the context of the existing conversation. */ boolean nested() default false; /** * If false (the default), invocation of the begin * method in the scope of an existing conversation * will cause an exception to be thrown. */ boolean join() default false; /** * 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; }