public void createNetwork() { List<Tuple<TransitLine, TransitRoute>> toBeRemoved = new LinkedList<Tuple<TransitLine, TransitRoute>>(); for (TransitLine tLine : this.schedule.getTransitLines().values()) { for (TransitRoute tRoute : tLine.getRoutes().values()) { ArrayList<Id<Link>> routeLinks = new ArrayList<Id<Link>>(); TransitRouteStop prevStop = null; for (TransitRouteStop stop : tRoute.getStops()) { Link link = getNetworkLink(prevStop, stop); routeLinks.add(link.getId()); prevStop = stop; } if (routeLinks.size() > 0) { NetworkRoute route = RouteUtils.createNetworkRoute(routeLinks, this.network); tRoute.setRoute(route); } else { System.err.println("Line " + tLine.getId() + " route " + tRoute.getId() + " has less than two stops. Removing this route from schedule."); toBeRemoved.add(new Tuple<TransitLine, TransitRoute>(tLine, tRoute)); } } } for (Tuple<TransitLine, TransitRoute> remove : toBeRemoved) { remove.getFirst().removeRoute(remove.getSecond()); } }
public void testRemoveRoute() { TransitLine tLine = createTransitLine(Id.create("1980", TransitLine.class)); TransitRoute route1 = new TransitRouteImpl(Id.create("11", TransitRoute.class), null, new ArrayList<TransitRouteStop>(), "bus"); TransitRoute route2 = new TransitRouteImpl(Id.create("5", TransitRoute.class), null, new ArrayList<TransitRouteStop>(), "bus"); assertEquals(0, tLine.getRoutes().size()); tLine.addRoute(route1); tLine.addRoute(route2); assertEquals(2, tLine.getRoutes().size()); assertNotNull(tLine.getRoutes().get(route1.getId())); assertNotNull(tLine.getRoutes().get(route2.getId())); assertTrue(tLine.removeRoute(route1)); assertEquals(1, tLine.getRoutes().size()); assertNull(tLine.getRoutes().get(route1.getId())); assertNotNull(tLine.getRoutes().get(route2.getId())); assertTrue(tLine.removeRoute(route2)); assertEquals(0, tLine.getRoutes().size()); tLine.addRoute(route1); assertEquals(1, tLine.getRoutes().size()); assertFalse(tLine.removeRoute(route2)); assertEquals(1, tLine.getRoutes().size()); assertNotNull(tLine.getRoutes().get(route1.getId())); }