NonZeroDurationOps

Operations mixin for timelines of activity directives.

Used for both generic directives, and specific directive types from the mission model.

Inheritors

Types

Link copied to clipboard
class SplitException(message: String) : Exception

Functions

Link copied to clipboard
open fun cache(): THIS

(DOC) Caches the timeline for all available time.

abstract fun cache(opts: CollectOptions): THIS

Caches the result of collecting this timeline, to be reused for future collect requests if possible.

open fun cache(bounds: Interval): THIS

(DOC) A simplified version of cache.

Link copied to clipboard
open fun collect(): List<T>

(DOC) Collects the timeline for all available time.

abstract fun collect(opts: CollectOptions): List<T>

(DOC) Evaluates the stack of operations and produces a list of timeline payload objects.

open fun collect(bounds: Interval): List<T>

(DOC) A simplified version of collect.

Link copied to clipboard
open fun <RESULT : GeneralOps<T, RESULT>> convert(ctor: (Timeline<T, RESULT>) -> RESULT): RESULT

(DOC) Safely converts to another timeline type that accepts the same payload type.

Link copied to clipboard
open fun filter(preserveMargin: Boolean = false, f: (T) -> Boolean): THIS

(DOC) Removes or retains objects based on a predicate.

Link copied to clipboard
open fun filterByDuration(validInterval: Interval): THIS

(DOC) Removes objects whose duration is outside a given valid interval.

Link copied to clipboard
open fun filterByWindows(windows: SerialOps<Interval, *>, truncateMarginal: Boolean = true): THIS

(DOC) Filters out payload objects whose intervals are not contained in the given Windows timeline.

Link copied to clipboard
open fun filterLongerThan(dur: Duration): THIS

(DOC) Removes objects whose duration is shorter than a given duration.

Link copied to clipboard
open fun filterShorterThan(dur: Duration): THIS

(DOC) Removes objects whose duration is longer than a given duration.

Link copied to clipboard
open fun forEach(p0: Consumer<in T>)
Link copied to clipboard
open fun highlight(f: (T) -> Boolean): Windows

(DOC) Similar to filter, but produces a coalesced Windows object that highlights everything that satisfies the predicate.

Link copied to clipboard
open fun inspect(f: Consumer<List<T>>): THIS

(DOC) Inserts a no-op function into the operation stack to allow side effects, such as printing.

Link copied to clipboard
open fun isolate(f: (T) -> Boolean): Universal<T>

(DOC) Similar to filter, but returns an Universal timeline.

Link copied to clipboard
abstract operator fun iterator(): Iterator<T>
Link copied to clipboard
open fun select(interval: Interval): THIS

(DOC) Restricts the timeline to only be evaluated in the given interval.

Link copied to clipboard
open fun shift(dur: Duration): THIS

(DOC) Uniformly shifts the entire timeline in time (positive shifts toward the future).

Link copied to clipboard
open fun split(f: (T) -> Int): THIS

(DOC) Splits payload objects into a variable number of equally sized pieces.

Link copied to clipboard
Link copied to clipboard
abstract fun <RESULT : Timeline<T, RESULT>> unsafeCast(ctor: (Timeline<T, RESULT>) -> RESULT): RESULT

(DOC) UNSAFE! Casts this timeline type to another type without changing its contents.

Link copied to clipboard
open fun <R : IntervalLike<R>, RESULT : GeneralOps<R, RESULT>> unsafeFlatMap(ctor: (Timeline<R, RESULT>) -> RESULT, boundsTransformer: BoundsTransformer, truncate: Boolean, f: (T) -> Segment<GeneralOps<R, *>>): RESULT

(DOC) UNSAFE! Maps each object to a nested timeline and flattens all the timelines into one.

Link copied to clipboard
open fun unsafeMap(boundsTransformer: BoundsTransformer, truncate: Boolean, f: (T) -> T): THIS

(DOC) UNSAFE! A simpler version of unsafeMap for operations that don't change the timeline type.

open fun <R : IntervalLike<R>, RESULT : GeneralOps<R, RESULT>> unsafeMap(ctor: (Timeline<R, RESULT>) -> RESULT, boundsTransformer: BoundsTransformer, truncate: Boolean, f: (T) -> R): RESULT

(DOC) UNSAFE! Maps each timeline object to another object, of potentially a different type, at potentially a different time.

Link copied to clipboard
open fun <W : IntervalLike<W>, R : IntervalLike<R>, RESULT : GeneralOps<R, RESULT>> unsafeMap2(ctor: (Timeline<R, RESULT>) -> RESULT, other: GeneralOps<W, *>, op: (T, W, Interval) -> R?): RESULT

Performs a generalized binary operation between this and another timeline.

Link copied to clipboard
open fun unsafeMapIntervals(boundsTransformer: BoundsTransformer, truncate: Boolean, f: (T) -> Interval): THIS

(DOC) UNSAFE! Maps the interval of each object, leaving the rest of the object unchanged.

Link copied to clipboard
open fun unsafeOperate(f: Timeline<T, THIS>.(opts: CollectOptions) -> List<T>): THIS

(DOC) UNSAFE! A simpler version of unsafeOperate for operations that don't change the timeline type.

(DOC) UNSAFE! The basic, most general operation method. All operations eventually delegate here.

Link copied to clipboard
open fun unset(reject: Interval): THIS

(DOC) Unsets everything in a given interval. Timeline objects whose intervals fully contain the rejected interval may be split into two objects.