package org.squirrelframework.foundation.fsm.annotation; import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.RetentionPolicy.RUNTIME; import java.lang.annotation.Retention; import java.lang.annotation.Target; import org.squirrelframework.foundation.fsm.Condition; import org.squirrelframework.foundation.fsm.Conditions; import org.squirrelframework.foundation.fsm.TransitionPriority; import org.squirrelframework.foundation.fsm.TransitionType; @Target({ TYPE }) @Retention(RUNTIME) public @interface Transit { String from(); String to(); String on(); boolean isTargetFinal() default false; @SuppressWarnings("rawtypes") Class<? extends Condition> when() default Conditions.Always.class; String whenMvel() default ""; TransitionType type() default TransitionType.EXTERNAL; String callMethod() default ""; int priority() default TransitionPriority.NORMAL; }