Class Scrolling.AutoClosingIterator
- java.lang.Object
-
- org.apache.calcite.adapter.elasticsearch.Scrolling.AutoClosingIterator
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,java.util.Iterator<ElasticsearchJson.Result>
- Enclosing class:
- Scrolling
private static class Scrolling.AutoClosingIterator extends java.lang.Object implements java.util.Iterator<ElasticsearchJson.Result>, java.lang.AutoCloseable
Observes when existing iterator has ended and clears context (scroll) if any.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
closed
Wascloser
consumer already called ?private java.util.function.Consumer<java.lang.String>
closer
private java.util.Iterator<ElasticsearchJson.Result>
delegate
private java.lang.String
scrollId
Keeps last value ofscrollId
in memory so scroll can be released upon termination
-
Constructor Summary
Constructors Modifier Constructor Description private
AutoClosingIterator(java.util.Iterator<ElasticsearchJson.Result> delegate, java.util.function.Consumer<java.lang.String> closer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
boolean
hasNext()
ElasticsearchJson.Result
next()
-
-
-
Field Detail
-
delegate
private final java.util.Iterator<ElasticsearchJson.Result> delegate
-
closer
private final java.util.function.Consumer<java.lang.String> closer
-
closed
private boolean closed
Wascloser
consumer already called ?
-
scrollId
private java.lang.String scrollId
Keeps last value ofscrollId
in memory so scroll can be released upon termination
-
-
Constructor Detail
-
AutoClosingIterator
private AutoClosingIterator(java.util.Iterator<ElasticsearchJson.Result> delegate, java.util.function.Consumer<java.lang.String> closer)
-
-
Method Detail
-
close
public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
-
hasNext
public boolean hasNext()
- Specified by:
hasNext
in interfacejava.util.Iterator<ElasticsearchJson.Result>
-
next
public ElasticsearchJson.Result next()
- Specified by:
next
in interfacejava.util.Iterator<ElasticsearchJson.Result>
-
-