@Override public Id<Vehicle> getVehicleId() { return AbstractTransitDriverAgent.this.vehicle.getVehicle().getId(); }
public TransitQVehicle(final Vehicle basicVehicle) { super(basicVehicle); VehicleCapacity capacity = basicVehicle.getType().getCapacity(); if (capacity == null) { throw new NullPointerException("No capacity set in vehicle type."); } }
private void assertAllStopsServed() { if (this.nextStop != null) { RuntimeException e = new RuntimeException("Transit vehicle is not yet at last stop! vehicle-id = " + this.vehicle.getVehicle().getId() + "; next-stop = " + this.nextStop.getStopFacility().getId()); log.error(e); throw e; } }
private void writeVehicles(Map<Id<Vehicle>, Vehicle> veh) throws UncheckedIOException { for (Vehicle v : veh.values()) { atts.clear(); atts.add(this.createTuple(VehicleSchemaV1Names.ID, v.getId().toString())); atts.add(this.createTuple(VehicleSchemaV1Names.TYPE, v.getType().getId().toString())); this.writeStartTag(VehicleSchemaV1Names.VEHICLE, atts, true); } }
@Override public double getSizeInEquivalents() { return vehicle.getType().getPcuEquivalents(); }
private void assertVehicleIsEmpty() { if (this.vehicle.getPassengers().size() > 0) { RuntimeException e = new RuntimeException("Transit vehicle is at last stop but still contains passengers that did not leave the vehicle!"); log.error("Transit vehicle must be empty after last stop! vehicle-id = " + this.vehicle.getVehicle().getId(), e); for (PassengerAgent agent : this.vehicle.getPassengers()) { if (agent instanceof PersonDriverAgentImpl) { log.error("Agent is still in transit vehicle: agent-id = " + ((PersonDriverAgentImpl) agent).getPerson().getId()); } } throw e; } }
/** * Add the vehicle to the container. * * @param v * @throws IllegalArgumentException if another {@link Vehicle} with * the same {@link Id} already exists in the container. */ @Override public void addVehicle(final Vehicle v) { /* Validation. */ if(this.getVehicles().containsKey(v.getId())){ throw new IllegalArgumentException("Vehicle with id = " + v.getId() + " already exists."); } /* Check if the VehicleType associated with the vehicle already exist. * Here only an error message is given. A RuntimeException is thrown * when the VehicleWriterV1 is called (JWJ, '14). */ if(!this.vehicleTypes.containsKey(v.getType().getId())){ throw new IllegalArgumentException("Cannot add Vehicle with type = " + v.getType().getId().toString() + " if the VehicleType has not been added to the Vehicles container."); } /* Add the vehicle. */ this.vehicles.put(v.getId(), v); this.counter.incCounter(); }
private void addPVehiclesToOriginalOnes(Vehicles baseVehicles, Vehicles pVehicles){ for (VehicleType t : pVehicles.getVehicleTypes().values()) { if (!baseVehicles.getVehicleTypes().containsKey(t.getId())) { baseVehicles.addVehicleType(t); currentExclusivePVehicleTypeIDs.add(t.getId()); } } for (Vehicle v : pVehicles.getVehicles().values()) { if (!baseVehicles.getVehicles().containsKey(v.getId())) { baseVehicles.addVehicle(v); currentExclusivePVehicleIDs.add(v.getId()); } } }
@Override public void updateVehicles(Vehicles vehicles) { this.vehId2VehicleCapacity = new HashMap<>(); for (Vehicle veh : vehicles.getVehicles().values()) { Integer seats = veh.getType().getCapacity().getSeats(); Integer standing = veh.getType().getCapacity().getStandingRoom(); // setting these values is not mandatory. Thus, they maybe null \\DR, aug'13 this.vehId2VehicleCapacity.put(veh.getId(), ((seats == null) ? 0 : seats) + ((standing == null) ? 0 : standing) - 1); } }
public double getMaximumVelocity() { return vehicle.getType().getMaximumVelocity(); }
private void createEmptyUmlaeufe() { for (Vehicle vehicle : vehicles.getVehicles().values()) { UmlaufImpl umlauf = new UmlaufImpl(this.createUmlaufIdFromVehicle(vehicle)); umlauf.setVehicleId(vehicle.getId()); umlaeufe.put(umlauf.getId(), umlauf); } }
@Override public void updateVehicles(Vehicles vehicles) { this.vehId2VehicleCapacity = new HashMap<>(); for (Vehicle veh : vehicles.getVehicles().values()) { Integer seats = veh.getType().getCapacity().getSeats(); Integer standing = veh.getType().getCapacity().getStandingRoom(); // setting these values is not mandatory. Thus, they maybe null \\DR, aug'13 this.vehId2VehicleCapacity.put(veh.getId(), ((seats == null) ? 0 : seats) + ((standing == null) ? 0 : standing) - 1.0); } }
@Override public void removeVehicleType(Id<VehicleType> vehicleTypeId) { for (Vehicle veh : this.vehicles.values()) { if (veh.getType().getId().equals(vehicleTypeId)) { throw new IllegalArgumentException("Cannot remove vehicle type as it is used by at least one vehicle."); } } this.vehicleTypes.remove(vehicleTypeId); }
private void processEventVehicleArrives(final TransitStopFacility stop, final double now) { if (this.currentStop == null) { this.currentStop = this.nextStop; double delay = now - this.getDeparture().getDepartureTime(); if (! ( Double.isNaN(this.currentStop.getArrivalOffset()) && Double.isInfinite(this.currentStop.getArrivalOffset())) ){ delay = delay - this.currentStop.getArrivalOffset(); } else if (! (Double.isNaN(this.currentStop.getDepartureOffset()) && Double.isInfinite(this.currentStop.getDepartureOffset()))) { delay = delay - this.currentStop.getDepartureOffset(); } else { log.warn("Could not calculate delay!"); } eventsManager.processEvent(new VehicleArrivesAtFacilityEvent(now, this.vehicle.getVehicle().getId(), stop.getId(), delay)); } }
@Override public void updateVehicles(Vehicles vehicles) { this.vehId2VehicleCapacity = new HashMap<>(); for (Vehicle veh : vehicles.getVehicles().values()) { Integer seats = veh.getType().getCapacity().getSeats(); Integer standing = veh.getType().getCapacity().getStandingRoom(); // setting these values is not mandatory. Thus, they maybe null \\DR, aug'13 this.vehId2VehicleCapacity.put(veh.getId(), ((seats == null) ? 0 : seats) + ((standing == null) ? 0 : standing) - 1.0); } }
@Override public double getTollFactor(Id<Person> personId, Id<Vehicle> vehicleId, Id<Link> linkId, double time) { VehicleType someVehicleType = null ; // --> replace by something meaningful <-- if ( scenario.getVehicles().getVehicles().get( vehicleId ).getType().equals( someVehicleType ) ) { return 2 ; } else { return 1 ; } } } ;
public void run() { VehiclesFactory vb = this.vehicles.getFactory(); VehicleType vehicleType = vb.createVehicleType(Id.create("defaultTransitVehicleType", VehicleType.class)); VehicleCapacity capacity = new VehicleCapacityImpl(); capacity.setSeats(Integer.valueOf(101)); capacity.setStandingRoom(Integer.valueOf(0)); vehicleType.setCapacity(capacity); this.vehicles.addVehicleType(vehicleType); long vehId = 0; for (TransitLine line : this.schedule.getTransitLines().values()) { for (TransitRoute route : line.getRoutes().values()) { for (Departure departure : route.getDepartures().values()) { Vehicle veh = vb.createVehicle(Id.create("tr_" + Long.toString(vehId++), Vehicle.class), vehicleType); this.vehicles.addVehicle(veh); departure.setVehicleId(veh.getId()); } } } } }