/** * Copying builder. * @param parcel The data to use in the builder. * @return A {@link Builder} instance. */ public static Parcel.Builder builder(Parcel parcel) { return builder(parcel.getDto()); }
public ParcelDecorator(Parcel p, String parcelName) { super(p.getDto()); name = parcelName; }
static Set<ParcelDTO> toParcelDTOs(Collection<? extends Parcel> ps) { final ImmutableSet.Builder<ParcelDTO> builder = ImmutableSet.builder(); for (final Parcel p : ps) { builder.add(p.getDto()); } return builder.build(); }
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; }
@Override public int compare(Visit o1, Visit o2) { final boolean is1pv = o1 instanceof ParcelVisit; final boolean is2pv = o2 instanceof ParcelVisit; if (!is1pv && !is2pv) { return 0; } else if (!is1pv) { return -1; } else if (!is2pv) { return 1; } // is1pv && is2pv final ParcelDTO p1 = ((ParcelVisit) o1).getParcel().getDto(); final ParcelDTO p2 = ((ParcelVisit) o2).getParcel().getDto(); if (p1.equals(p2)) { return 0; } return ComparisonChain.start() // small time windows are more difficult, therefore: reverse ordering .compare( p1.getPickupTimeWindow().length() + p1.getDeliveryTimeWindow().length(), p2.getPickupTimeWindow().length() + p2.getDeliveryTimeWindow().length(), Ordering.natural().reverse()) .result(); }
@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; } } }
return false; final Point loc = isPickup ? p.getDto().getPickupLocation() : p .getDeliveryLocation(); final long travelTime = computeTravelTimeTo(loc, time.getTimeUnit());
return false; final Point loc = isPickup ? p.getDto().getPickupLocation() : p .getDeliveryLocation(); final long travelTime = computeTravelTimeTo(loc, time.getTimeUnit());
assertEquals(destination.getDto().getDeliveryLocation(), rm.getPosition(v1)); pm.deliver(v1, p1, TimeLapseFactory.create(0, 1));
dp3 = create(new Point(1, 0), new Point(0, 6)); for (final Parcel dp : asList(dp1, dp2, dp3)) { rm.addObjectAt(dp, dp.getDto().getPickupLocation()); pm.register(dp);
.buildDTO()); rm.addObjectAt(dp1, dp1.getDto().getPickupLocation()); pm.register(dp1);