Package com.intercom.api.core
Class Stream<T>
- java.lang.Object
-
- com.intercom.api.core.Stream<T>
-
- Type Parameters:
T- The type of objects in the stream.
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,java.lang.Iterable<T>
public final class Stream<T> extends java.lang.Object implements java.lang.Iterable<T>, java.io.CloseableTheStreamclass implementsIterableto provide a simple mechanism for reading and parsing objects of a given type from data streamed via aReaderusing a specified delimiter.Streamassumes that data is being pushed to the providedReaderasynchronously and utilizes aScannerto block during iteration if the next object is not available. Iterable stream for parsing JSON and Server-Sent Events (SSE) data. Supports both newline-delimited JSON and SSE with optional stream termination.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classStream.StreamType
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()static <T> Stream<T>fromJson(java.lang.Class<T> valueType, java.io.Reader reader)static <T> Stream<T>fromJson(java.lang.Class<T> valueType, java.io.Reader reader, java.lang.String delimiter)static <T> Stream<T>fromSse(java.lang.Class<T> valueType, java.io.Reader sseReader)static <T> Stream<T>fromSse(java.lang.Class<T> valueType, java.io.Reader sseReader, java.lang.String streamTerminator)java.util.Iterator<T>iterator()Returns an iterator over the elements in this stream that blocks during iteration when the next object is not yet available.
-
-
-
Constructor Detail
-
Stream
public Stream(java.lang.Class<T> valueType, java.io.Reader reader, java.lang.String delimiter)
Constructs a newStreamwith the specified value type, reader, and delimiter.- Parameters:
valueType- The class of the objects in the stream.reader- The reader that provides the streamed data.delimiter- The delimiter used to separate elements in the stream.
-
-
Method Detail
-
fromJson
public static <T> Stream<T> fromJson(java.lang.Class<T> valueType, java.io.Reader reader, java.lang.String delimiter)
-
fromJson
public static <T> Stream<T> fromJson(java.lang.Class<T> valueType, java.io.Reader reader)
-
fromSse
public static <T> Stream<T> fromSse(java.lang.Class<T> valueType, java.io.Reader sseReader)
-
fromSse
public static <T> Stream<T> fromSse(java.lang.Class<T> valueType, java.io.Reader sseReader, java.lang.String streamTerminator)
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Throws:
java.io.IOException
-
iterator
public java.util.Iterator<T> iterator()
Returns an iterator over the elements in this stream that blocks during iteration when the next object is not yet available.- Specified by:
iteratorin interfacejava.lang.Iterable<T>- Returns:
- An iterator that can be used to traverse the elements in the stream.
-
-