public final class DataDrivenTemplateIterator extends Object implements Iterator<Object>
Throttled implementation of Iterator
, meant to be queried in scenarios when an iterated
context variable is allowed to be in control of the engine's throttling (i.e. the engine's execution
is data-driven).
A common scenario for this would be reactive systems executing the template engine as a part of a flow obtaining data from a data source, so that as the data is obtained, a part of the template is output containing that part of the data.
This class is meant for internal use only from the diverse integrations of Thymeleaf in reactive architectures. There is normally no reason why a user would have to use this class directly.
Constructor and Description |
---|
DataDrivenTemplateIterator() |
Modifier and Type | Method and Description |
---|---|
boolean |
continueBufferExecution() |
void |
feedBuffer(List<Object> newElements) |
void |
feedingComplete() |
void |
finishIteration() |
void |
finishStep() |
boolean |
hasBeenQueried()
|
boolean |
hasNext() |
boolean |
isStepOutputFinished() |
Object |
next() |
void |
remove() |
void |
setSseEventsFirstID(long sseEventsFirstID) |
void |
setSseEventsPrefix(String sseEventsPrefix) |
void |
setWriterControl(IThrottledTemplateWriterControl writerControl) |
void |
startHead() |
void |
startIteration() |
void |
startTail() |
void |
takeBackLastEventID() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEachRemaining
public void setWriterControl(IThrottledTemplateWriterControl writerControl)
public void setSseEventsPrefix(String sseEventsPrefix)
public void setSseEventsFirstID(long sseEventsFirstID)
public void takeBackLastEventID()
public void startIteration()
public void finishIteration()
public boolean hasBeenQueried()
Returns whether this data driven iterator has been actually queried, i.e., whether its hasNext()
or
next()
methods have been called at least once.
This indicates if the template has actually reached a point at which this iterator has been already needed or not. The typical use of this is to be able to switch between the "head" and the "data/buffer" phase.
public boolean continueBufferExecution()
public void startHead()
public void feedingComplete()
public void startTail()
public void finishStep()
public boolean isStepOutputFinished()
Copyright © 2017 The THYMELEAF team. All rights reserved.