/* * Copyright 2001-2006 Geert Bevin * Distributed under the terms of either: * - the common development and distribution license (CDDL), v1.0; or * - the GNU Lesser General Public License, v2.1 or later * $Id: $ */ package com.uwyn.rife.engine.annotations; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.lang.annotation.ElementType; import java.lang.annotation.Documented; /** * Declares a flow link for the element. This annotation may only be used on * final String fields. The value of the field is used as the source exit name. * * @author Geert Bevin (gbevin[remove] at uwyn dot com) * @version $Revision: $ * @since 1.5 * @see Flowlink */ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD}) @Documented public @interface FlowlinkField { /** * The ID of the destination element for this flow link. *

If destClass is provided, it will override the * destId value. * @see #destClass * @since 1.5 */ String destId() default ""; /** * The Java class of the destination element for this flow link. This * class should at least have an {@link Elem} annotation. *

If destClass is provided, it will override the * destId value. * @see #destId * @since 1.5 */ Class destClass() default void.class; /** * Indicates whether this flow link is a snapback. * @since 1.5 */ boolean snapback() default false; /** * Indicates whether this flow link will redirect to a dedicated URL * instead of executing the destination element directly. * @since 1.5 */ boolean redirect() default false; /** * Indicates whether the behavioral inheritance (3D flow) should be * preserved or cancelled when this flow link is followed. * @since 1.5 */ Inheritance inheritance() default Inheritance.PRESERVE; /** * Indicates whether element embedded should be preserved or cancelled * when this flow link is followed. * @since 1.5 */ Embedding embedding() default Embedding.PRESERVE; /** * This flow link's data links. * @since 1.5 */ Datalink[] datalinks() default {}; public enum Inheritance { PRESERVE, CANCEL } public enum Embedding { PRESERVE, CANCEL } }