コード例 #1
0
  @Override
  public void handleEvent(final PersonLeavesVehicleEvent event) {
    if (this.analyzedTransitDrivers.contains(event.getPersonId())
        || !this.analyzedTransitVehicles.contains(event.getVehicleId())) {
      return; // ignore transit drivers or persons entering non-(analyzed-)transit vehicles
    }

    // ----------------veh_passenger-(for occupancy)--------------------------
    Id vehId = event.getVehicleId();
    double time = event.getTime();
    Integer nPassengers = this.vehPassengers.get(vehId);
    if (nPassengers == null) {
      throw new RuntimeException("null passenger-No. in vehicle ?");
    }
    this.vehPassengers.put(vehId, nPassengers - 1);
    if (this.vehPassengers.get(vehId).intValue() == 0) {
      this.vehPassengers.remove(vehId);
    }
    Integer passengers = this.vehPassengers.get(vehId);
    this.occupancyRecord.append(
        "time :\t"
            + time
            + " veh :\t"
            + vehId
            + " has Passenger\t"
            + ((passengers != null) ? passengers : 0)
            + "\n");
  }
コード例 #2
0
  @Override
  public void handleEvent(PersonLeavesVehicleEvent event) {
    if (event.getVehicleId().toString().equalsIgnoreCase(this.vehId)) {
      if (event.getTime() >= this.startTime && event.getTime() < this.stopTime) {
        AgentCountBox acb = this.enteredMap.get(event.getPersonId());
        acb.travelTimeInVehicle = event.getTime() - acb.travelTimeInVehicle;
        this.completeAgents.add(acb);
        this.enteredMap.remove(event.getPersonId());

        if (this.debug.containsKey(event.getPersonId())) {
          //					log.warn("Agent " + event.getPersonId() + " counted twice");
          this.numberOfAdditionalTripsPerformed++;
        } else {
          this.debug.put(event.getPersonId(), "");
        }
      }
    }
  }