001    package com.hammurapi.flow.runtime;
002    
003    import java.net.URL;
004    import java.util.List;
005    
006    /**
007     * Contains information about processing in a single flow 
008     * element (node or transition). 
009     * Similar to StackTraceFrame.
010     * @author Pavel Vlasov
011     *
012     */
013    public interface ProcessingPathElement {
014            
015            /**
016             * @return Location of flow definition.
017             */
018            URL getFlowUrl();
019            
020            /**
021             * @return Path to the flow element in the flow definition.
022             */
023            List<String> getFlowElementPath();
024            
025            /**
026             * @return Name of the processing node (e.g. JVM name) where
027             * this flow element was executed.
028             */
029            String getProcessor();
030            
031            /**
032             * @return Node index.
033             */
034            int getNodeIdx();
035            
036            /**
037             * @return Transition index.
038             */
039            int getTransitionIdx();
040            
041            /**
042             * @return Pin name.
043             */
044            String getPinName();
045            
046            /**
047             * @return Node.
048             */
049            Node<?,?,?,?> getNode();
050            
051            /**
052             * @return Transition.
053             */
054            Transition<?,?> getTransition();
055            
056            /**
057             * @return True if the transition is incoming to the node.
058             */
059            boolean isInbound();
060            
061    }