Class StreamHelperCalls
java.lang.Object
org.ek9lang.compiler.phase7.support.StreamHelperCalls
THE call shapes for the compiler-to-runtime helper types stream pipelines lower onto (
Ek9Async,
Ek9Group, Ek9Split, Ek9Join, Ek9Uniq, the tail buffer, Ek9Sort) - use
these, do not hand-roll another; the sibling of ListBufferCalls, which owns the List buffer.
PLUMBING: every call here is made on a runtime helper that has no EK9 symbol, because it is the compiler's
own lowering, so none carries call metadata (purity and complexity describe something a user authored, see
CompilerPlumbingCalls). The null metadata is stated once, here. When the metadata question for
these calls is decided, this is the one place that changes.
Return type names are kept exactly as the call sites always spelled them ("Boolean" for a question
answered by a helper, Any for an element), as nothing in the @IR goldens can see them.
-
Method Summary
Modifier and TypeMethodDescriptionstatic CallDetailstracker.addGroup(group)on a group or split tracker.static CallDetailsasyncCancel(String executorVar) executor.cancel().static CallDetailsasyncClose(String executorVar) executor.close().static CallDetailsasyncSortResults(String executorVar) executor.sortResults().static CallDetailsasyncSubmit(String executorVar, String itemVar) executor.submit(item).static CallDetailsThe staticcreate()of a helper type: a fresh helper typed as itself.static CallDetailscreateTail(String tailTypeName, String integerTypeName, String limitVar) The staticcreate(Integer limit)of the tail buffer type.static CallDetailsgroupIsKeyChanged(String groupTrackerVar, String keyVar) group.isKeyChanged(key): a Boolean.static CallDetailsgroupIsKeyChanged(String groupTrackerVar, String keyVar, String elementVar) group.isKeyChanged(key, element)forgroup by: the key AND the element it was made from, so an unset ELEMENT is kept for the final unset group whatever its key is (D24,sort | group).static CallDetailsguardDiffer(String sourceVar, String sinkVar) The staticEk9StreamGuard.differ(source, sink): fails when a stream's evaluated source and one of its appending sinks are the same object (THE run-time alias check, Steve 2026-10-27).static CallDetailssource.hasNext()on a drained helper (async executor, tracker or tail buffer): a Boolean.static CallDetailshasNextGroup(String trackerVar, String trackerTypeName) tracker.hasNextGroup()on a group or split tracker: a Boolean.static CallDetailsjoinHasResult(String joinTrackerVar) join.hasResult(): a Boolean.static CallDetailsjoinIsFirst(String joinTrackerVar) join.isFirst(): a Boolean.static CallDetailssource.next()on a drained helper: anAnyelement.static CallDetailstracker.nextGroup()on a group or split tracker: anAnygroup.static CallDetailsThe staticEk9Sort.sort(buffer).static CallDetailsThe staticEk9Sort.sort(buffer, comparator).static CallDetailssplitIsBoundary(String splitTrackerVar, String itemVar, String predicateResultVar) split.isBoundary(item, predicateResult): the item and the boundary predicate's answer for it; a primitive boolean.static CallDetailstail.pipe(item)on the tail buffer.static CallDetailsuniq.isNew(item): a Boolean.static CallDetailswasStarted(String trackerVar, String trackerTypeName) tracker.wasStarted()on a group or split tracker: a Boolean.
-
Method Details
-
create
The staticcreate()of a helper type: a fresh helper typed as itself. -
guardDiffer
The staticEk9StreamGuard.differ(source, sink): fails when a stream's evaluated source and one of its appending sinks are the same object (THE run-time alias check, Steve 2026-10-27). -
createTail
The staticcreate(Integer limit)of the tail buffer type. -
hasNext
source.hasNext()on a drained helper (async executor, tracker or tail buffer): a Boolean. -
next
source.next()on a drained helper: anAnyelement. -
asyncSubmit
executor.submit(item). -
asyncClose
executor.close(). -
asyncCancel
executor.cancel(). -
asyncSortResults
executor.sortResults(). -
groupIsKeyChanged
group.isKeyChanged(key): a Boolean. -
groupIsKeyChanged
public static CallDetails groupIsKeyChanged(String groupTrackerVar, String keyVar, String elementVar) group.isKeyChanged(key, element)forgroup by: the key AND the element it was made from, so an unset ELEMENT is kept for the final unset group whatever its key is (D24,sort | group). -
addGroup
tracker.addGroup(group)on a group or split tracker. -
wasStarted
tracker.wasStarted()on a group or split tracker: a Boolean. -
hasNextGroup
tracker.hasNextGroup()on a group or split tracker: a Boolean. -
nextGroup
tracker.nextGroup()on a group or split tracker: anAnygroup. -
splitIsBoundary
public static CallDetails splitIsBoundary(String splitTrackerVar, String itemVar, String predicateResultVar) split.isBoundary(item, predicateResult): the item and the boundary predicate's answer for it; a primitive boolean. An unset ITEM is kept for the final unset group and is never a boundary (D24, split). -
joinIsFirst
join.isFirst(): a Boolean. -
joinHasResult
join.hasResult(): a Boolean. -
uniqIsNew
uniq.isNew(item): a Boolean. -
tailPipe
tail.pipe(item)on the tail buffer. -
sort
The staticEk9Sort.sort(buffer). -
sort
The staticEk9Sort.sort(buffer, comparator).
-