Interface PerceptionCollectable<H extends Headway,U>

Type Parameters:
H - headway type
U - underlying object type
All Superinterfaces:
Iterable<H>, PerceptionIterable<H>
All Known Implementing Classes:
AbstractPerceptionIterable, AbstractPerceptionReiterable, DownstreamNeighborsIterable, LaneBasedObjectIterable, MultiLanePerceptionIterable, PerceptionCollectableFiltered, UpstreamNeighborsIterable

public interface PerceptionCollectable<H extends Headway,U> extends PerceptionIterable<H>
Iterable that additionally provides support for PerceptionCollectors. These gather raw data, to only 'perceive' the result.

Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.

Author:
Alexander Verbraeck, Peter Knoppers, Wouter Schakel
  • Method Details

    • collect

      default <C, I> C collect(PerceptionCollectable.PerceptionCollector<C,? super U,I> collector)
      Collect the underlying objects in to a perceived result. This methodology is loosely based on Stream.collect().
      Type Parameters:
      C - collection result type
      I - intermediate type
      Parameters:
      collector - PerceptionCollector<C, ? super U, I>; collector
      Returns:
      C; collection result
    • collect

      <C, I> C collect(Supplier<I> identity, PerceptionCollectable.PerceptionAccumulator<? super U,I> accumulator, PerceptionCollectable.PerceptionFinalizer<C,I> finalizer)
      Collect the underlying objects in to a perceived result. This methodology is loosely based on Stream.collect().
      Type Parameters:
      C - collection result type
      I - intermediate type
      Parameters:
      identity - Supplier<I>; the initial intermediate result value
      accumulator - PerceptionAccumulator<? super U, I>; accumulator
      finalizer - PerceptionFinalizer<C, I>; finalizer
      Returns:
      C; collection result
    • underlying

      Iterator<U> underlying()
      Returns an iterator over the underlying objects.
      Returns:
      Iterator<U>; iterator
    • underlyingWithDistance

      Returns an iterator over the underlying objects coupled with the distance.
      Returns:
      Iterator<UnderlyingDistance<U>>; iterator