/** * Initializes a new instance that delegates all calls to the specified * {@link GenericRoadModel}. * @param deleg The instance to which all calls are delegated. */ protected ForwardingRoadModel(T deleg) { delegate = deleg; delegate().setSelf(this); }
@Override public GenericRoadModel create(ForwardingRoadModelTest testClass) { return new ForwardingRoadModel(new ForwardingRoadModel( new ForwardingRoadModel(RoadModelBuilders.staticGraph(testClass .createGraph()).build(mock(DependencyProvider.class))))); } }}});
@Override public GenericRoadModel create(ForwardingRoadModelTest testClass) { return new ForwardingRoadModel(RoadModelBuilders.staticGraph(testClass .createGraph()).build(mock(DependencyProvider.class))); } }}, {new Creator() {
@Override public MoveProgress moveTo(MovingRoadUser object, Point destination, TimeLapse time) { return delegate().moveTo(object, destination, time); }
/** * Tests whether decoration fails when already initialized. */ @SuppressWarnings("unused") @Test public void decorationFail() { model.register(new RoadUser() { @Override public void initRoadUser(RoadModel m) {} }); boolean fail = false; try { new ForwardingRoadModel(model); } catch (final IllegalStateException e) { fail = true; } assertTrue(fail); }
@Override public MoveProgress followPath(MovingRoadUser object, Queue<Point> path, TimeLapse time) { return delegate().followPath(object, path, time); }
/** * Tests whether decoration works correctly. */ @Test public void decoration() { assertSame(model, model.self); final GenericRoadModel a = new ForwardingRoadModel(model); assertSame(a, model.self); assertSame(a, a.self); final GenericRoadModel b = new ForwardingRoadModel(a); assertSame(b, model.self); assertSame(b, a.self); assertSame(b, b.self); final GenericRoadModel c = new ForwardingRoadModel(b); assertSame(c, model.self); assertSame(c, a.self); assertSame(c, b.self); assertSame(c, c.self); }
@Override public RoadPath getPathTo(MovingRoadUser object, Point destination, Unit<Duration> timeUnit, Measure<Double, Velocity> maxSpeed, GeomHeuristic heuristic) { return delegate().getPathTo(object, destination, timeUnit, maxSpeed, heuristic); }
@Override public GenericRoadModel create(ForwardingRoadModelTest testClass) { return new ForwardingRoadModel( RoadModelBuilders.plane() .withMinPoint(new Point(0, 0)) .withMaxPoint(new Point(10, 10)) .withDistanceUnit(SI.METER) .withSpeedUnit(SI.METERS_PER_SECOND) .withMaxSpeed(10d) .build(mock(DependencyProvider.class))); } }}, {new Creator() {
@Override public MoveProgress moveTo(MovingRoadUser object, RoadUser destination, TimeLapse time, GeomHeuristic heuristic) { return delegate().moveTo(object, destination, time, heuristic); }
@Override public MoveProgress moveTo(MovingRoadUser object, Point destination, TimeLapse time, GeomHeuristic heuristic) { return delegate().moveTo(object, destination, time, heuristic); }
@Override public <Y extends RoadUser> Set<Y> getObjectsAt(RoadUser roadUser, Class<Y> type) { return delegate().getObjectsAt(roadUser, type); }
@Override public RoadPath getPathTo(Point from, Point to, Unit<Duration> timeUnit, Measure<Double, Velocity> speed, GeomHeuristic heuristic) { return delegate().getPathTo(from, to, timeUnit, speed, heuristic); }
@Override public MoveProgress moveTo(MovingRoadUser object, RoadUser destination, TimeLapse time) { return delegate().moveTo(object, destination, time); }
@Nullable @Override public Point getDestination(MovingRoadUser roadUser) { return delegate().getDestination(roadUser); }
@Override @Nonnull public <U> U get(Class<U> type) { return delegate().get(type); }
@Override public boolean containsObject(RoadUser obj) { return delegate().containsObject(obj); }
@Override public boolean equalPosition(RoadUser obj1, RoadUser obj2) { return delegate().equalPosition(obj1, obj2); }
@Override public Map<RoadUser, Point> getObjectsAndPositions() { return delegate().getObjectsAndPositions(); }
@Override public boolean doRegister(RoadUser element) { return delegate().register(element); }