/** * Checks whether the vehicle exists in the RoadModel. * * @param vehicle The vehicle to check. */ protected void checkVehicleInRoadModel(Vehicle vehicle) { checkArgument(roadModel.containsObject(vehicle), "vehicle does not exist in RoadModel"); }
@Override public Optional<Point> getPosition() { if (roadModel.get().containsObject(this)) { return Optional.of(roadModel.get().getPosition(this)); } return Optional.absent(); }
@Override public Optional<Point> getPosition() { if (roadModel.get().containsObject(this)) { return Optional.of(roadModel.get().getPosition(this)); } return Optional.absent(); }
@Override public void addParcelIn(Container container, Parcel parcel) { synchronized (this) { /* 1 */checkArgument(!roadModel.containsObject(parcel), "this parcel is already added to the roadmodel"); /* 2 */checkArgument( parcelState.getKeys(parcel) == ParcelState.AVAILABLE, "parcel must be registered and in AVAILABLE state, current state: %s", parcelState.getKeys(parcel)); /* 3 */checkArgument(containerCapacities.containsKey(container), "the parcel container is not registered"); /* 4 */checkArgument(roadModel.containsObject(container), "the parcel container is not on the roadmodel"); final double newSize = containerContentsSize.get(container) + parcel.getNeededCapacity(); /* 5 */checkArgument( newSize <= containerCapacities.get(container), "parcel does not fit in container. Capacity is %s, current content " + "size is %s, new parcel size is %s", containerCapacities.get(container), containerContentsSize.get(container), parcel.getNeededCapacity()); containerContents.put(container, parcel); containerContentsSize.put(container, newSize); parcelState.put(ParcelState.IN_CARGO, parcel); } }
@Override public void tick(TimeLapse timeLapse) { // every time step (tick) this gets called. Each time we chose a // different destination and move in that direction using the time // that was made available to us. if (!roadModel.containsObject(this)) { roadModel.addObjectAt(this, roadModel.getRandomPosition(rnd)); } roadModel.moveTo(this, roadModel.getRandomPosition(rnd), timeLapse); }
@Override public void tick(TimeLapse timeLapse) { // every time step (tick) this gets called. Each time we chose a // different destination and move in that direction using the time // that was made available to us. if (!roadModel.containsObject(this)) { roadModel.addObjectAt(this, roadModel.getRandomPosition(rnd)); } roadModel.moveTo(this, roadModel.getRandomPosition(rnd), timeLapse); }
if (!inCargo && !rm.containsObject(curr.get())) { curr = Optional.absent(); } else if (inCargo) {
if (getRoadModel().containsObject(destination.get())) { getRoadModel().moveTo(this, destination.get(), time); } else {
if (!inCargo && !rm.containsObject(curr.get())) { curr = Optional.absent(); } else if (inCargo) {
if (getRoadModel().containsObject(destination.get())) { getRoadModel().moveTo(this, destination.get(), time); } else {
synchronized (this) { /* 2 */checkArgument(roadModel.containsObject(parcel), "parcel does not exist in RoadModel"); final ParcelState ps = parcelState.getKeys(parcel);
assertEquals(VehicleState.IDLE, model.getVehicleState(truck)); assertFalse(rm.containsObject(pack1)); assertTrue(model.containerContains(truck, pack1)); assertEquals(2, model.getContentsSize(truck), EPSILON); assertEquals(VehicleState.IDLE, model.getVehicleState(truck)); model.pickup(truck, pack2, TimeLapseFactory.create(0, 40)); assertFalse(rm.containsObject(pack2)); final PickupAction action = (PickupAction) model .getVehicleActionInfo(truck);