@Override public ParcelState getParcelState(Parcel parcel) { return delegate.getParcelState(parcel); }
@Override public boolean apply(@Nullable RoadUser input) { return input instanceof Parcel && pm.getParcelState((Parcel) input) == ParcelState.AVAILABLE; } });
@Override public boolean apply(@Nullable RoadUser input) { return input instanceof Parcel && pm.getParcelState((Parcel) input) == ParcelState.AVAILABLE; } });
@Override public boolean apply(@Nullable RoadUser input) { return input instanceof Parcel && pm.getParcelState((Parcel) input) == ParcelState.AVAILABLE; } });
@Override public boolean apply(@Nullable RoadUser input) { return input instanceof Parcel && pm.getParcelState((Parcel) input) == ParcelState.AVAILABLE; } });
private boolean isAlreadyServiced(DestType type, RoadUser ru) { boolean alreadyServiced = false; final Parcel p = (Parcel) ru; if (type == DestType.PICKUP) { alreadyServiced = pdpModel.get().getParcelState(p) == ParcelState.PICKING_UP || pdpModel.get().getParcelState(p) == ParcelState.IN_CARGO; } else if (type == DestType.DELIVERY) { alreadyServiced = pdpModel.get().getParcelState(p) == ParcelState.DELIVERING || pdpModel.get().getParcelState(p) == ParcelState.DELIVERED; } return alreadyServiced; }
private boolean isAlreadyServiced(DestType type, RoadUser ru) { boolean alreadyServiced = false; final Parcel p = (Parcel) ru; if (type == DestType.PICKUP) { alreadyServiced = pdpModel.get().getParcelState(p) == ParcelState.PICKING_UP || pdpModel.get().getParcelState(p) == ParcelState.IN_CARGO; } else if (type == DestType.DELIVERY) { alreadyServiced = pdpModel.get().getParcelState(p) == ParcelState.DELIVERING || pdpModel.get().getParcelState(p) == ParcelState.DELIVERED; } return alreadyServiced; }
@Override public boolean apply(RoadUser input) { return input instanceof Parcel && pm.getParcelState((Parcel) input) == ParcelState.AVAILABLE; } });
@Override public boolean releaseParcel(Parcel p) { checkArgument(!pdpModel.get().getParcelState(p).isPickedUp() && !pdpModel.get().getParcelState(p).isTransitionState()); LOGGER.info("{} releaseParcel {}", this, p); checkArgument(assignedParcels.contains(p)); assignedParcels.remove(p); checkState(!assignedParcels.contains(p)); eventDispatcher .dispatchEvent(new Event(CommunicatorEventType.CHANGE, this)); return true; }
void checkCurrentParcelOwnership() { checkState( !getPDPModel().getParcelState(route.peek()).isTransitionState(), "Parcel is already being serviced by another vehicle. Parcel state: %s", getPDPModel().getParcelState(route.peek())); }
void checkCurrentParcelOwnership() { checkState( !getPDPModel().getParcelState(route.peek()).isTransitionState(), "Parcel is already being serviced by another vehicle. Parcel state: %s", getPDPModel().getParcelState(route.peek())); }
@Override public float getStrength() { if (!isInitialized()) { return 0f; } return getPDPModel().getParcelState(this) == ParcelState.AVAILABLE ? AVAILABLE_STRENGTH : 0.0f; } }
@Override public float getStrength() { if (!isInitialized()) { return 0f; } return getPDPModel().getParcelState(this) == ParcelState.AVAILABLE ? AVAILABLE_STRENGTH : 0.0f; } }
Point getParcelPos(RoadUser obj) { if (!containsObject(obj) && obj instanceof Parcel) { final ParcelState state = pdpModel.get().getParcelState( (Parcel) obj); checkArgument( state == ParcelState.IN_CARGO, "Can only move to parcels which are either on the map or in cargo, " + "state is %s, obj is %s.", state, obj); return ((Parcel) obj).getDeliveryLocation(); } return getPosition(obj); }
Point getParcelPos(RoadUser obj) { if (!containsObject(obj) && obj instanceof Parcel) { final ParcelState state = pdpModel.get().getParcelState( (Parcel) obj); checkArgument( state == ParcelState.IN_CARGO, "Can only move to parcels which are either on the map or in cargo, " + "state is %s, obj is %s.", state, obj); return ((Parcel) obj).getDeliveryLocation(); } return getPosition(obj); }
Point convertToPos(Truck t) { Point p; if (t.getRoute().isEmpty() || heuristic == SelectNegotiatorsHeuristic.VEHICLE_POSITION) { p = roadModel.get().getPosition(t); } else { final Parcel firstDestination = t.getRoute().iterator().next(); if (pdpModel.get().getParcelState(firstDestination).isPickedUp()) { p = firstDestination.getDto().getDeliveryLocation(); } else { p = firstDestination.getDto().getPickupLocation(); } } return p; }
static Point getPos(Parcel parcel, PDPModel model) { if (model.getParcelState(parcel).isPickedUp()) { return parcel.getDto().getDeliveryLocation(); } return parcel.getDto().getPickupLocation(); }
/** * Test illegal argument: delivered state. */ @Test(expected = IllegalArgumentException.class) public void isTooEarlyDeliveredStateFail() { d.setRoute(asList(p1, p1)); tick(0, 60); assertEquals(ParcelState.DELIVERED, pm.getParcelState(p1)); d.isTooEarly(p1, time(2)); }
/** * Test illegal argument: transition state. */ @Test(expected = IllegalArgumentException.class) public void isTooEarlyTransitionStateFail() { d.setRoute(asList(p1)); tick(3, 6); assertEquals(ParcelState.PICKING_UP, pm.getParcelState(p1)); d.isTooEarly(p1, time(2)); }
@Test public void twoVehiclesGoToSame() { // this is allowed rm.moveTo(dv1, dp1, time(10)); rm.moveTo(dv2, dp1, time(10)); assertEquals(rm.getPosition(dv1), rm.getPosition(dp1)); assertEquals(rm.getPosition(dv2), rm.getPosition(dp1)); pm.pickup(dv2, dp1, time(1)); assertFalse(rm.containsObject(dp1)); assertEquals(ParcelState.IN_CARGO, pm.getParcelState(dp1)); rm.moveTo(dv1, dp2, time(3)); }