public Route append(final Edge edge) { return append(Route.forEdge(edge)); }
public static Route forRoutes(final Iterable<Route> routes) { if (!routes.iterator().hasNext()) { throw new CoreException("Cannot have no edges"); } Route result = null; for (final Route route : routes) { if (result == null) { result = route; } else { result = result.append(route); } } return result; }
/** * Create a {@link Route} from an {@link Iterable} of {@link Edge}s that are already in the * proper order to be connected. * * @param edges * The {@link Edge}s to link in a {@link Route} * @return The corresponding {@link Route} */ public static Route forEdges(final Iterable<Edge> edges) { if (!edges.iterator().hasNext()) { throw new CoreException("Cannot have no edges"); } int counter = 0; Route result = null; for (final Edge edge : edges) { if (counter == 0) { result = Route.forEdge(edge); } else { result = result.append(edge); } counter++; } return result; }
public Candidate withNewEdge(final Edge edge, final double edgeCost) { return new Candidate(getRoute().append(edge), getCost() + edgeCost); } }
try route = candidateJunctionRoute.append(expandableEdge);
@Override public Route route(final Edge start, final Edge end) { if (start == null || end == null) { throw new CoreException( "Cannot compute route on null arguments: start = {} and end = {}", start, end); } if (start.equals(end)) { // Same edge return Route.forEdge(start); } if (start.end().equals(end.start())) { // Directly connected edges return Route.forEdge(start).append(end); } final Route result = route(start.end(), end.start()); if (result != null) { // Re-populate the result with the start and end edges return Route.forEdge(start).append(result).append(end); } return null; }
@Test(expected = CoreException.class) public void testRoute() { this.route.append(this.atlas.edge(-9)); Assert.fail("Should not build non connected route"); }
private Optional<Route> buildHighwayAreaBoundary(final Route boundary) { for (final Edge edge : boundary.end().end().connectedEdges()) { if (canAddEdgeToBoundary(edge, boundary)) { final Route extendedBoundary = boundary.append(edge); if (extendedBoundary.end().end().getLocation() .equals(extendedBoundary.start().start().getLocation())) { return Optional.of(extendedBoundary); } else { return buildHighwayAreaBoundary(extendedBoundary); } } } return Optional.empty(); }
route = route.append(atlas.edge(edgeIdentifier));
route = route.append(edge); break;
route = route.append(atlas.edge(edgeIdentifier));
route = route.append(edge); idsAdded.add(edge.getMasterEdgeIdentifier()); break;
@Before public void init() { this.atlas = new PackedAtlasTest().getAtlas(); final Edge edge1 = this.atlas.edge(98); final Edge edge2 = this.atlas.edge(987); this.route = Route.forEdge(edge1); this.route = this.route.append(edge2); }