@Override public PDPModel.VehicleParcelActionInfo getVehicleActionInfo( Vehicle vehicle) { return delegate.getVehicleActionInfo(vehicle); }
@Override public void unclaim(Parcel p) { LOGGER.info("{} unclaim {}", this, p); checkArgument(claimedParcels.contains(p), "Can not unclaim %s because it is not claimed.", p); // check that parcel is still assignable to another bidder checkArgument( // it may be available or announced pdpModel.get().getParcelState(p) == ParcelState.AVAILABLE || pdpModel.get().getParcelState(p) == ParcelState.ANNOUNCED // otherwise, we must make sure that 'our' vehicle is not servicing it // i.e. if our vehicle is idle: || pdpModel.get().getVehicleState(vehicle.get()) == VehicleState.IDLE // or, if our vehicle is not idle, that it is not servicing the parcel // we are trying to get rid of: || pdpModel.get().getVehicleActionInfo(vehicle.get()).getParcel() != p, "%s: Parcel (%s) can not be unclaimed because it is being serviced.", this, p, pdpModel.get().getParcelState(p)); claimedParcels.remove(p); }
boolean isPickingUp(Parcel p) { return getPDPModel().getVehicleState(this) == VehicleState.PICKING_UP && getPDPModel().getVehicleActionInfo(this).getParcel().equals(p); }
boolean isPickingUp(Parcel p) { return getPDPModel().getVehicleState(this) == VehicleState.PICKING_UP && getPDPModel().getVehicleActionInfo(this).getParcel().equals(p); }
if (pdpModel.get().getVehicleState(vehicle.get()) != VehicleState.IDLE) { LOGGER.info("parcel {} {}", pdpModel.get().getVehicleActionInfo(vehicle.get()) .getParcel(), pdpModel.get().getVehicleActionInfo(vehicle.get()) .getParcel()));
? pdpModel.get().getVehicleActionInfo(vehicle.get()).getParcel() : destination; if (!route.peek().equals(next)) {
@Override public void renderDynamic(GC gc, ViewPort vp, long time) { uiSchema.initialize(gc.getDevice()); final Collection<Parcel> parcels = pdpModel.getParcels( ParcelState.values()); final Image image = uiSchema.getImage(Box.class); checkState(image != null); synchronized (pdpModel) { final Set<Vehicle> vehicles = pdpModel.getVehicles(); final Map<Parcel, Vehicle> mapping = new LinkedHashMap<>(); for (final Vehicle v : vehicles) { for (final Parcel p : pdpModel.getContents(v)) { mapping.put(p, v); } if (pdpModel.getVehicleState(v) != VehicleState.IDLE) { final PDPModel.VehicleParcelActionInfo vpai = pdpModel .getVehicleActionInfo(v); mapping.put(vpai.getParcel(), vpai.getVehicle()); } } for (final Parcel p : parcels) { drawBox(p, gc, vp, time, image, mapping); } } }
@Override public void renderDynamic(GC gc, ViewPort vp, long time) { uiSchema.initialize(gc.getDevice()); final Collection<Parcel> parcels = pdpModel.getParcels( ParcelState.values()); final Image image = uiSchema.getImage(Box.class); checkState(image != null); synchronized (pdpModel) { final Set<Vehicle> vehicles = pdpModel.getVehicles(); final Map<Parcel, Vehicle> mapping = new LinkedHashMap<>(); for (final Vehicle v : vehicles) { for (final Parcel p : pdpModel.getContents(v)) { mapping.put(p, v); } if (pdpModel.getVehicleState(v) != VehicleState.IDLE) { final PDPModel.VehicleParcelActionInfo vpai = pdpModel .getVehicleActionInfo(v); mapping.put(vpai.getParcel(), vpai.getVehicle()); } } for (final Parcel p : parcels) { drawBox(p, gc, vp, time, image, mapping); } } }
Parcel destination = null; if (!isIdle) { final VehicleParcelActionInfo vpai = pm.getVehicleActionInfo(vehicle); destination = vpai.getParcel(); remainingServiceTime = vpai.timeNeeded();
getPDPModel().getVehicleActionInfo(this).getParcel() == dp, "A parcel in the route that is being serviced should be serviced by" + " this truck. This truck is servicing %s.", getPDPModel().getVehicleActionInfo(this).getParcel());
getPDPModel().getVehicleActionInfo(this).getParcel() == dp, "A parcel in the route that is being serviced should be serviced by" + " this truck. This truck is servicing %s.", getPDPModel().getVehicleActionInfo(this).getParcel());
assertThat(pm.getVehicleState(d)).isSameAs(VehicleState.PICKING_UP); assertThat(pm.getVehicleState(d2)).isSameAs(VehicleState.PICKING_UP); assertThat(pm.getVehicleActionInfo(d).getParcel()).isSameAs(p1); assertThat(pm.getVehicleActionInfo(d2).getParcel()).isSameAs(p4); assertThat(d.getRoute()).containsExactly(p1, p1); assertThat(d2.getRoute()).containsExactly(p4, p4);
+ "it is %s.", parcelState, parcelState.isTransitionState() ? getPDPModel() .getVehicleActionInfo(this).timeNeeded() : null); final boolean isPickup = !parcelState.isPickedUp();
+ "it is %s.", parcelState, parcelState.isTransitionState() ? getPDPModel() .getVehicleActionInfo(this).timeNeeded() : null); final boolean isPickup = !parcelState.isPickedUp();
void checkVehicles(List<? extends TestVehicle> expected, ImmutableList<VehicleStateObject> states) { assertEquals(expected.size(), states.size()); for (int i = 0; i < expected.size(); i++) { final TestVehicle vehicle = expected.get(i); final VehicleDTO dto = vehicle.dto; final VehicleStateObject vs = states.get(i); assertEquals(dto.getAvailabilityTimeWindow(), vs.getDto().getAvailabilityTimeWindow()); assertEquals(dto.getCapacity(), vs.getDto().getCapacity()); assertEquals(dto.getSpeed(), vs.getDto().getSpeed(), 0); assertEquals(dto.getStartPosition(), vs.getDto().getStartPosition()); assertEquals(rm.getPosition(expected.get(i)), vs.getLocation()); final Parcel dest = rm.getDestinationToParcel(vehicle); if (dest == null) { assertFalse(vs.getDestination().isPresent()); } else { assertEquals(dest, vs.getDestination().get()); } if (pm.getVehicleState(vehicle) == VehicleState.IDLE) { assertEquals(0, vs.getRemainingServiceTime()); } else { assertEquals(pm.getVehicleActionInfo(vehicle).timeNeeded(), vs.getRemainingServiceTime()); } } }
gc.drawText( state.toString() + " " + pdpModel.getVehicleActionInfo(v).timeNeeded(), x, y - STATE_TEXT_OFFSET);
.getVehicleActionInfo(v); final Point pos = roadModel.getPosition(v); final int x = vp.toCoordX(pos.x);
assertEquals(VehicleState.PICKING_UP, pm.getVehicleState(d2)); assertThat(pm.getVehicleActionInfo(d2).getParcel()).isSameAs(p3);
.getVehicleActionInfo(v); final Point pos = roadModel.getPosition(v); final int x = vp.toCoordX(pos.x);
assertFalse(rm.containsObject(pack2)); final PickupAction action = (PickupAction) model .getVehicleActionInfo(truck); assertFalse(action.isDone()); assertEquals(60, action.timeNeeded());