001 package toolbus.viewer;
002
003 import toolbus.StateElement;
004 import toolbus.process.ProcessInstance;
005
006 /**
007 * This interface specifies the events the debug toolbus can fire.
008 *
009 * @author Arnold Lankamp
010 */
011 public interface IViewer{
012
013 /**
014 * Informs the viewer about what the debug toolbus is currently doing. A list of possible states
015 * can be found in toolbus.viewer.IViewerConstants
016 *
017 * @see toolbus.viewer.IViewerConstants
018 * @param state
019 * The state that identifies what the debug toolbus is currently doing.
020 */
021 void updateState(int state);
022
023 /**
024 * Fired after the successfull completion of a step.
025 *
026 * @param processInstance
027 * The process instance in which a state element was executed.
028 * @param executedStateElement
029 * The state element that was executed.
030 * @param partners
031 * All the process instances that cooperated during the execution of the state element.
032 */
033 void stepExecuted(ProcessInstance processInstance, StateElement executedStateElement, ProcessInstance[] partners);
034
035 /**
036 * Fired when a new process instance is started.
037 *
038 * @param processInstance
039 * The process instance that was started.
040 */
041 void processInstanceStarted(ProcessInstance processInstance);
042
043 /**
044 * Fired when a process instance is terminated.
045 *
046 * @param processInstance
047 * The process instance that was terminated.
048 */
049 void processInstanceTerminated(ProcessInstance processInstance);
050
051 /**
052 * Informs the viewer that a registered breakpoint on a process or process instance was hit. The
053 * debug toolbus will not suspend it's execution by itself; the action that will be taken is
054 * completely up to the viewer implementation. In case the execution needs to be paused this will
055 * need to be done explicitly by calling the doStop method.
056 *
057 * @param processInstance
058 * The process instance that matches the breakpoint.
059 */
060 void processBreakPointHit(ProcessInstance processInstance);
061
062 /**
063 * Informs the viewer that a registered breakpoint on a state element was hit. The debug toolbus
064 * will not suspend it's execution by itself; the action that will be taken is completely up to
065 * the viewer implementation. In case the execution needs to be paused this will need to be done
066 * explicitly by calling the doStop method.
067 *
068 * @param stateElement
069 * The state element on which the breakpoint was set.
070 */
071 void stateElementBreakPointHit(StateElement stateElement);
072
073 /**
074 * Informs the viewer that a registered breakpoint on a sourcecode coordinate was hit. The
075 * debug toolbus will not suspend it's execution by itself; the action that will be taken is
076 * completely up to the viewer implementation. In case the execution needs to be paused this
077 * will need to be done explicitly by calling the doStop method.
078 *
079 * @param stateElement
080 * The executed state element which's position information corresponded to a
081 * breakpoint set on a sourcecode coordinate.
082 */
083 void sourceBreakPointHit(StateElement stateElement);
084
085 /**
086 * Fired right before the debug ToolBus starts executing the process logic.
087 */
088 void toolbusStarting();
089
090 /**
091 * Fired right before then debug ToolBus shuts down.
092 */
093 void toolbusTerminating();
094 }