private void notifyAllSubWorkflowState(
      StepIdentifier identifier,
      ExecutionState executionState,
      Date timestamp,
      List<String> nodenames) {

    for (WorkflowStateListener listener : listeners) {
      listener.subWorkflowExecutionStateChanged(identifier, executionState, timestamp, nodenames);
    }
  }
 private void notifyAllStepState(
     StepIdentifier identifier, StepStateChange stepStateChange, Date timestamp) {
   for (WorkflowStateListener listener : listeners) {
     listener.stepStateChanged(identifier, stepStateChange, timestamp);
   }
 }
 private void notifyAllWorkflowState(
     ExecutionState executionState, Date timestamp, List<String> nodenames) {
   for (WorkflowStateListener listener : listeners) {
     listener.workflowExecutionStateChanged(executionState, timestamp, nodenames);
   }
 }