001    package com.hammurapi.flow.runtime;
002    
003    /**
004     * Runtime classes representing transitions shall implement this interface.
005     * @author Pavel Vlasov
006     * @param <S> Flow state type.
007     * @param <A> Argument type.
008     */
009    public interface Transition<S, A> extends FlowElement {
010            
011            /**
012             * @return Invocable which represents transition start.
013             */
014            Invocable<S, A> getInvocable();
015                    
016            /**
017             * @return Invoker which represents transition end.
018             */
019            Invoker<S, A> getInvoker();
020            
021    }