public boolean isAcceptingFromUpstream() { return this.ql.getAcceptingQLane().isAcceptingFromUpstream(); }
private void moveBufferToNextLane(QLaneI qlane) { QVehicle veh; while (!qlane.isNotOfferingVehicle()) { veh = qlane.getFirstVehicle(); Id<Link> toLinkId = veh.getDriver().chooseNextLinkId(); QLaneI nextQueue = this.chooseNextLane(qlane, toLinkId); if (nextQueue != null) { if (nextQueue.isAcceptingFromUpstream()) { qlane.popFirstVehicle(); nextQueue.addFromUpstream(veh); } else { break; } } else { StringBuilder b = new StringBuilder(); b.append("Person Id: ").append(veh.getDriver().getId()); b.append(" is on Lane Id ").append(qlane.getId()); b.append(" on Link Id ").append(this.getLink().getId()); b.append(" and wants to drive to Link Id ").append(toLinkId); b.append(" but there is no Lane leading to that Link!"); log.error(b.toString()); throw new IllegalStateException(b.toString()); } } }
if (nextQueueLane.isAcceptingFromUpstream()) { moveVehicleFromInlinkToOutlink(veh, currentLink.getId(), fromLane, nextLinkId, nextQueueLane); return true;
@Test public void testAdd() { Fixture f = new Fixture(isUsingFastCapacityUpdate); assertEquals(0, ((QueueWithBuffer) f.qlink1.getAcceptingQLane()).getAllVehicles().size()); QVehicle v = new QVehicleImpl(f.basicVehicle); Person p = PopulationUtils.getFactory().createPerson(Id.create("1", Person.class)); p.addPlan(PopulationUtils.createPlan()); v.setDriver(createAndInsertPersonDriverAgentImpl(p, f.sim)); f.qlink1.getAcceptingQLane().addFromUpstream(v); assertEquals(1, ((QueueWithBuffer) f.qlink1.getAcceptingQLane()).getAllVehicles().size()); assertFalse(f.qlink1.getAcceptingQLane().isAcceptingFromUpstream()); assertTrue(f.qlink1.isNotOfferingVehicle()); }
assertTrue(f.qlink2.getAcceptingQLane().isAcceptingFromUpstream()); assertFalse(f.qlink2.getAcceptingQLane().isAcceptingFromUpstream()); assertTrue(f.qlink2.isNotOfferingVehicle()); f.sim.getSimTimer().setTime(now); assertTrue(f.qlink2.getAcceptingQLane().isAcceptingFromUpstream()); assertFalse(f.qlink2.isNotOfferingVehicle()); assertTrue(f.qlink2.getAcceptingQLane().isAcceptingFromUpstream()); assertTrue(f.qlink2.getAcceptingQLane().isAcceptingFromUpstream()); assertFalse(f.qlink2.getAcceptingQLane().isAcceptingFromUpstream()); f.sim.getSimTimer().setTime(now); f.qlink2.doSimStep(); assertFalse(f.qlink2.getAcceptingQLane().isAcceptingFromUpstream()); assertTrue(f.qlink2.getAcceptingQLane().isAcceptingFromUpstream()); assertFalse(f.qlink2.getAcceptingQLane().isAcceptingFromUpstream());