timeWindowPolicy.canPickup(parcel.getPickupTimeWindow(), time.getTime(), parcel.getPickupDuration()), "parcel pickup is not allowed according to the time window policy: "
@Override protected void tickImpl(TimeLapse time) { final RoadModel rm = getRoadModel(); final PDPModel pm = getPDPModel(); // we always go to the closest available parcel final Parcel closest = (Parcel) RoadModels .findClosestObject(rm.getPosition(this), rm, new Predicate<RoadUser>() { @Override public boolean apply(@Nullable RoadUser input) { return input instanceof Parcel && pm.getParcelState((Parcel) input) == ParcelState.AVAILABLE; } }); if (closest != null) { rm.moveTo(this, closest, time); if (rm.equalPosition(closest, this) && pm .getTimeWindowPolicy() .canPickup(closest.getPickupTimeWindow(), time.getTime(), closest.getPickupDuration())) { pm.pickup(this, closest, time); } } } }
@Override protected void tickImpl(TimeLapse time) { final RoadModel rm = getRoadModel(); final PDPModel pm = getPDPModel(); // we always go to the closest available parcel final Parcel closest = (Parcel) RoadModels .findClosestObject(rm.getPosition(this), rm, new Predicate<RoadUser>() { @Override public boolean apply(@Nullable RoadUser input) { return input instanceof Parcel && pm.getParcelState((Parcel) input) == ParcelState.AVAILABLE; } }); if (closest != null) { rm.moveTo(this, closest, time); if (rm.equalPosition(closest, this) && pm .getTimeWindowPolicy() .canPickup(closest.getPickupTimeWindow(), time.getTime(), closest.getPickupDuration())) { pm.pickup(this, closest, time); } } } }
getPosition()) < DISTANCE_THRESHOLD_KM) { if (rm.equalPosition(closest, this) && pm.getTimeWindowPolicy().canPickup(closest.getPickupTimeWindow(), time.getTime(), closest.getPickupDuration())) { final double newSize = getPDPModel().getContentsSize(this)
getPosition()) < DISTANCE_THRESHOLD_KM) { if (rm.equalPosition(closest, this) && pm.getTimeWindowPolicy().canPickup(closest.getPickupTimeWindow(), time.getTime(), closest.getPickupDuration())) { final double newSize = getPDPModel().getContentsSize(this)
@Override protected void tickImpl(TimeLapse time) { final RoadModel rm = getRoadModel(); final PDPModel pm = getPDPModel(); // we always go to the closest available parcel final Parcel closest = (Parcel) RoadModels.findClosestObject( rm.getPosition(this), rm, new Predicate<RoadUser>() { @Override public boolean apply(RoadUser input) { return input instanceof Parcel && pm.getParcelState((Parcel) input) == ParcelState.AVAILABLE; } }); if (closest != null) { rm.moveTo(this, closest, time); if (rm.equalPosition(closest, this) && pm.getTimeWindowPolicy().canPickup(closest.getPickupTimeWindow(), time.getTime(), closest.getPickupDuration())) { pm.pickup(this, closest, time); } } } }