GraphTravelTimes(GraphRoadModel rm, Unit<Duration> tu, Point centerMostPoint, Iterator<Vehicle> vehicles) { roadModel = rm; double max = 0; while (vehicles.hasNext()) { final Vehicle v = vehicles.next(); max = Math.max(max, v.getDTO().getSpeed()); } vehicleSpeed = Measure.valueOf(max, roadModel.getSpeedUnit()); depotLocations = ImmutableList.of(centerMostPoint); this.timeUnit = tu; }
@Override public void initRoadPDP(RoadModel pRoadModel, PDPModel pPdpModel) { super.initRoadPDP(pRoadModel, pPdpModel); strategy.init(this, pRoadModel, pPdpModel); } }
@Override public final void tick(TimeLapse time) { // finish previously started pickup and delivery actions that need to // consume time getPDPModel().continuePreviousActions(this, time); tickImpl(time); }
/** * Instantiate a new vehicle based on the specified properties. * @param vehicleDto The data transfer object that holds all vehicle * properties. */ protected Vehicle(VehicleDTO vehicleDto) { dto = vehicleDto; setStartPosition(dto.getStartPosition()); setCapacity(dto.getCapacity()); }
@Test public void testDelayedPickup() { final Parcel pack1 = Parcel.builder(new Point(1, 1), new Point(2, 2)) .serviceDuration(10L) .neededCapacity(2d) .build(); final Vehicle truck = new TestVehicle( VehicleDTO.builder() .startPosition(new Point(1, 1)) .capacity(10) .speed(1.0) .build()); model.register(pack1); model.register(truck); rm.register(pack1); rm.register(truck); model.pickup(truck, pack1, TimeLapseFactory.create(0, 1)); assertTrue(model.getContents(truck).isEmpty()); assertEquals(model.getContentsSize(truck), 0, EPSILON); truck.tick(TimeLapseFactory.create(1, 10)); assertFalse(model.getContents(truck).isEmpty()); assertTrue(model.getContents(truck).contains(pack1)); assertEquals(model.getContentsSize(truck), 2, EPSILON); }
((Vehicle) me.roadUser).getStartPosition()) < MOVE_THRESHOLD) {
truck.tick(TimeLapseFactory.create(0, 10000));
((Vehicle) me.roadUser).getStartPosition()) < MOVE_THRESHOLD) {
return VehicleStateObject.create(vehicle.getDTO(), rm.getPosition(vehicle), conn, contents, remainingServiceTime,
@OverridingMethodsMustInvokeSuper @Override public void initRoadPDP(RoadModel pRoadModel, PDPModel pPdpModel) { super.initRoadPDP(pRoadModel, pPdpModel); final Set<Depot> depots = getRoadModel().getObjectsOfType(Depot.class); checkArgument(depots.size() == 1, "This vehicle requires exactly 1 depot, found %s depots.", depots.size()); checkArgument(getRoadModel() instanceof PDPRoadModel, "This vehicle requires the PDPRoadModel."); isDiversionAllowed = ((PDPRoadModel) getRoadModel()) .isVehicleDiversionAllowed(); depot = Optional.of(depots.iterator().next()); speed = Optional.of(Measure.valueOf(getSpeed(), getRoadModel() .getSpeedUnit())); }
assertFalse(rm.containsObject(dp1)); assertEquals(ParcelState.PICKING_UP, pm.getParcelState(dp1)); dv1.tick(time(1)); assertEquals(ParcelState.IN_CARGO, pm.getParcelState(dp1));
dv2 = new TestVehicle(new Point(0, 0)); for (final Vehicle tv : asList(dv1, dv2)) { rm.addObjectAt(tv, tv.getDTO().getStartPosition()); pm.register(tv);
@OverridingMethodsMustInvokeSuper @Override public void initRoadPDP(RoadModel pRoadModel, PDPModel pPdpModel) { super.initRoadPDP(pRoadModel, pPdpModel); final Set<Depot> depots = getRoadModel().getObjectsOfType(Depot.class); checkArgument(depots.size() == 1, "This vehicle requires exactly 1 depot, found %s depots.", depots.size()); checkArgument(getRoadModel() instanceof PDPRoadModel, "This vehicle requires the PDPRoadModel."); isDiversionAllowed = ((PDPRoadModel) getRoadModel()) .isVehicleDiversionAllowed(); depot = Optional.of(depots.iterator().next()); speed = Optional.of(Measure.valueOf(getSpeed(), getRoadModel() .getSpeedUnit())); }