Interface PerceptionCollectable<H extends Headway,​U>

Type Parameters:
H - headway type
U - underlying object type
All Superinterfaces:
java.lang.Iterable<H>, PerceptionIterable<H>
All Known Implementing Classes:
AbstractPerceptionIterable, AbstractPerceptionReiterable, DownstreamNeighborsIterable, LaneBasedObjectIterable, MultiLanePerceptionIterable, SortedSetPerceptionIterable, 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-2020 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.

Version:
$Revision$, $LastChangedDate$, by $Author$, initial version 1 mrt. 2018
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​(java.util.function.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

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

      java.util.Iterator<PerceptionCollectable.UnderlyingDistance<U>> underlyingWithDistance()
      Returns an iterator over the underlying objects coupled with the distance.
      Returns:
      Iterator<UnderlyingDistance<U>>; iterator