/**
   * Invoked each time a new job has been submitted to the Scheduler and validated.
   *
   * @param job the newly submitted job.
   */
  public void jobSubmittedEvent(JobState job) {
    for (SchedulerEventListener l : eventListeners) {
      l.jobSubmittedEvent(job);
    }

    super.jobSubmittedEvent(job);
  }
  /**
   * Invoked each time a scheduler event occurs.<br>
   * Scheduler events are stopped,started, paused, frozen, ...
   *
   * @param eventType the type of the event received.
   */
  public void schedulerStateUpdatedEvent(SchedulerEvent eventType) {

    for (SchedulerEventListener l : eventListeners) {
      l.schedulerStateUpdatedEvent(eventType);
    }
    super.schedulerStateUpdatedEvent(eventType);
  }
  /**
   * Invoked each time the state of a job has changed.<br>
   * If you want to maintain an up to date list of jobs, just use the {@link
   * org.ow2.proactive.scheduler.common.job.JobState#update(org.ow2.proactive.scheduler.common.job.JobInfo)}
   * method to update the content of your job.
   *
   * @param notification the data composed of the type of the event and the information that have
   *     change in the job.
   */
  public void jobStateUpdatedEvent(NotificationData<JobInfo> notification) {
    for (SchedulerEventListener l : eventListeners) {
      l.jobStateUpdatedEvent(notification);
    }
    super.jobStateUpdatedEvent(notification);

    update(notification);
  }
 /**
  * Invoked each time something change about users.
  *
  * @param notification the data composed of the type of the event and the data linked to the
  *     change.
  */
 public void usersUpdatedEvent(NotificationData<UserIdentification> notification) {
   for (SchedulerEventListener l : eventListeners) {
     l.usersUpdatedEvent(notification);
   }
   super.usersUpdatedEvent(notification);
 }
 /**
  * Invoked each time the state of a task has changed.<br>
  * In this case you can use the {@link
  * org.ow2.proactive.scheduler.common.job.JobState#update(org.ow2.proactive.scheduler.common.task.TaskInfo)}
  * method to update the content of the designated task inside your job.
  *
  * @param notification the data composed of the type of the event and the information that have
  *     change in the task.
  */
 public void taskStateUpdatedEvent(NotificationData<TaskInfo> notification) {
   for (SchedulerEventListener l : eventListeners) {
     l.taskStateUpdatedEvent(notification);
   }
   super.taskStateUpdatedEvent(notification);
 }