@Override public Optional<E> connectionData(Point from, Point to) { return delegate.connectionData(from, to); }
@Override public Optional<E> connectionData(Point from, Point to) { return delegate.connectionData(from, to); }
@Override public void handleTimedEvent(ChangeConnectionSpeedEvent event, SimulatorAPI simulator) { final Graph<MultiAttributeData> graph = (Graph<MultiAttributeData>) ((Simulator) simulator) .getModelProvider().getModel(PDPDynamicGraphRoadModel.class) .getGraph(); final MultiAttributeData data = graph.connectionData(event.getFrom(), event.getTo()).get(); graph.setConnectionData( event.getFrom(), event.getTo(), MultiAttributeData.builder() .addAllAttributes(data.getAttributes()) .setLength(data.getLength().get()) .setMaxSpeed(data.getMaxSpeed().get() * event.getFactor()) .build()); }
@Override public void handleTimedEvent(ChangeConnectionSpeedEvent event, SimulatorAPI simulator) { final Graph<MultiAttributeData> graph = (Graph<MultiAttributeData>) ((Simulator) simulator) .getModelProvider().getModel(PDPDynamicGraphRoadModel.class) .getGraph(); final MultiAttributeData data = graph.connectionData(event.getFrom(), event.getTo()).get(); graph.setConnectionData( event.getFrom(), event.getTo(), MultiAttributeData.builder() .addAllAttributes(data.getAttributes()) .setLength(data.getLength().get()) .setMaxSpeed(data.getMaxSpeed().get() * event.getFactor()) .build()); }
@Test public void connDataUsage() { final Point A = new Point(0, 0), B = new Point(0, 1), C = new Point(1, 0); graph.addConnection(A, B); graph.addConnection(Connection.create(B, A, LengthData.create(1.5))); graph.addConnection(B, C, LengthData.create(2)); // explicit empty value graph.addConnection(A, C); assertFalse("existing but empty", graph.connectionData(A, B).isPresent()); assertFalse("non existing", graph.connectionData(C, A).isPresent()); assertTrue("existing B->A", graph.connectionData(B, A).isPresent()); assertTrue("existing B->C", graph.connectionData(B, C).isPresent()); // use of the connection data assertEquals(1, graph.connectionLength(A, B), DELTA); assertEquals(1.5, graph.connectionLength(B, A), DELTA); assertEquals(2, graph.connectionLength(B, C), DELTA); try { graph.connectionLength(C, B); fail(); } catch (final IllegalArgumentException e) {} }