@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; }
for (final Truck truck : trucks) { for (final Parcel dp : truck.getRoute()) { if (!pdpModel.get().getParcelState(dp).isPickedUp()) { availableParcels.add(dp);
&& !pdpModel.get().getParcelState(p).isPickedUp() && !pdpModel.get().getParcelState(p).isTransitionState()) { toRemove.add(p);
if (state.isPickedUp()) { checkArgument(getPDPModel().getContents(this).contains(dp), "A parcel that is in cargo state must be in cargo of this "
if (state.isPickedUp()) { checkArgument(getPDPModel().getContents(this).contains(dp), "A parcel that is in cargo state must be in cargo of this "
final Set<Parcel> swappableParcels = new LinkedHashSet<>(); for (final Parcel ap : assignedParcels) { if (!pdpModel.get().getParcelState(ap).isPickedUp() && !pdpModel.get().getParcelState(ap).isTransitionState() && !state.getVehicles().get(0).getDestination().asSet()
|| event.trigger == DefaultEvent.NOGO) && !getPDPModel().getParcelState(gotoState.getPreviousDestination()) .isPickedUp()) { final Parcel prev = gotoState.getPreviousDestination(); if (communicator.getClaimedParcels().contains(prev)) { || event.trigger == DefaultEvent.REROUTE) { final Parcel cur = getRoute().iterator().next(); if (!getPDPModel().getParcelState(cur).isPickedUp()) { LOGGER.trace("{} claim:{}", this, cur);
if (!pdpModel.get().getParcelState(dp).isPickedUp()) { parcels.add(dp);
parcelState, parcelState.isTransitionState() ? getPDPModel() .getVehicleActionInfo(this).timeNeeded() : null); final boolean isPickup = !parcelState.isPickedUp();
parcelState, parcelState.isTransitionState() ? getPDPModel() .getVehicleActionInfo(this).timeNeeded() : null); final boolean isPickup = !parcelState.isPickedUp();
} else if (state.isPickedUp()) {
} else if (state.isPickedUp()) {
if (destination != null && !pm.getParcelState(destination).isPickedUp()) { availableDestBuilder.add(destination);
@Override public void renderDynamic(GC gc, ViewPort vp, long time) { final Set<RouteFollowingVehicle> vehicles = roadModel.getObjectsOfType( RouteFollowingVehicle.class); for (final RouteFollowingVehicle v : vehicles) { final Set<Parcel> seen = newHashSet(); final Point from = roadModel.getPosition(v); int prevX = vp.toCoordX(from.x); int prevY = vp.toCoordY(from.y); for (final Parcel parcel : ImmutableList.copyOf(v.getRoute())) { final Point to; if (pdpModel.getParcelState(parcel).isPickedUp() || seen.contains(parcel)) { to = parcel.getDto().getDeliveryLocation(); } else { to = parcel.getDto().getPickupLocation(); } seen.add(parcel); final int x = vp.toCoordX(to.x); final int y = vp.toCoordY(to.y); gc.drawLine(prevX, prevY, x, y); prevX = x; prevY = y; } } }
@Override public void renderDynamic(GC gc, ViewPort vp, long time) { final Set<RouteFollowingVehicle> vehicles = roadModel.getObjectsOfType( RouteFollowingVehicle.class); for (final RouteFollowingVehicle v : vehicles) { final Set<Parcel> seen = newHashSet(); final Point from = roadModel.getPosition(v); int prevX = vp.toCoordX(from.x); int prevY = vp.toCoordY(from.y); for (final Parcel parcel : ImmutableList.copyOf(v.getRoute())) { final Point to; if (pdpModel.getParcelState(parcel).isPickedUp() || seen.contains(parcel)) { to = parcel.getDto().getDeliveryLocation(); } else { to = parcel.getDto().getPickupLocation(); } seen.add(parcel); final int x = vp.toCoordX(to.x); final int y = vp.toCoordY(to.y); gc.drawLine(prevX, prevY, x, y); prevX = x; prevY = y; } } }
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(); }