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 }