@Override public void onEntry(StateEvent event, RouteFollowingVehicle context) { if (event == DefaultEvent.REROUTE) { checkArgument(isDiversionAllowed); } checkCurrentParcelOwnership(); destination = Optional.of(route.element()); }
@Override public void onEntry(StateEvent event, RouteFollowingVehicle context) { if (event == DefaultEvent.REROUTE) { checkArgument(isDiversionAllowed); } checkCurrentParcelOwnership(); destination = Optional.of(route.element()); }
@SuppressWarnings("synthetic-access") @Nullable @Override public DefaultEvent handle(@Nullable StateEvent event, RouteFollowingVehicle context) { if (!route.isEmpty()) { checkCurrentParcelOwnership(); if (!isTooEarly(route.peek(), currentTime.get())) { return DefaultEvent.GOTO; } // else it is too early, and we do nothing } else if (currentTime.get().hasTimeLeft() && isEndOfDay(currentTime.get()) && !getRoadModel().equalPosition(context, depot.get())) { // check if it is time to go back to the depot getRoadModel().moveTo(context, depot.get(), currentTime.get()); } currentTime.get().consumeAll(); return null; } }
@SuppressWarnings("synthetic-access") @Nullable @Override public DefaultEvent handle(@Nullable StateEvent event, RouteFollowingVehicle context) { if (!route.isEmpty()) { checkCurrentParcelOwnership(); if (!isTooEarly(route.peek(), currentTime.get())) { return DefaultEvent.GOTO; } // else it is too early, and we do nothing } else if (currentTime.get().hasTimeLeft() && isEndOfDay(currentTime.get()) && !getRoadModel().equalPosition(context, depot.get())) { // check if it is time to go back to the depot getRoadModel().moveTo(context, depot.get(), currentTime.get()); } currentTime.get().consumeAll(); return null; } }
return DefaultEvent.NOGO; checkCurrentParcelOwnership(); final PDPModel pm = getPDPModel(); final TimeLapse time = currentTime.get();
return DefaultEvent.NOGO; checkCurrentParcelOwnership(); final PDPModel pm = getPDPModel(); final TimeLapse time = currentTime.get();
/** * Tests a check what happens if someone else is picking up a parcel that a * vehicle wants to pick up. */ @Test public void testParcelOwnerShip() { d.setRoute(asList(p1)); d2.setRoute(asList(p1)); tick(0, 7); assertEquals(ParcelState.PICKING_UP, pm.getParcelState(p1)); boolean exception = false; try { d2.checkCurrentParcelOwnership(); } catch (final IllegalStateException e) { exception = true; } assertTrue(exception); }