예제 #1
0
  private void applyEvent(GridEvent event) {

    String fullJobId = event.getJobId();
    GridJob job = state.getJobByFullId(fullJobId);

    // Update the run state
    state.applyEvent(event);

    // Update the actor state
    switch (event.getType()) {
      case SUB:
        if (job == null) {
          job = new GridJob(event.getSnapshotJob());
        }
        applySub(job);
        break;
      case START:
        if (job == null) {
          log.error("Cannot start null job");
        } else {
          applyStart(job);
        }
        break;
      case END:
        if (job == null) {
          log.error("Cannot end null job");
        } else {
          applyEnd(job, event.getOffset());
        }
        break;
      default:
        log.warn("Unrecognized event type: {}", event.getType());
        break;
    }
  }