Class JoinStream
java.lang.Object
org.apache.solr.client.solrj.io.stream.TupleStream
org.apache.solr.client.solrj.io.stream.JoinStream
- All Implemented Interfaces:
Closeable,Serializable,AutoCloseable,Expressible,org.apache.solr.common.MapSerializable,org.apache.solr.common.MapWriter,org.apache.solr.common.NavigableObject,org.noggit.JSONWriter.Writable
- Direct Known Subclasses:
BiJoinStream
Defines a JoinStream which can hold N streams, all joined with the same equalitor
- Since:
- 6.0.0
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
TupleStream.IgnoreExceptionNested classes/interfaces inherited from interface org.apache.solr.common.MapWriter
org.apache.solr.common.MapWriter.EntryWriter -
Field Summary
FieldsFields inherited from interface org.apache.solr.common.MapWriter
EMPTY -
Constructor Summary
ConstructorsConstructorDescriptionJoinStream(StreamEqualitor eq, TupleStream first, TupleStream second, TupleStream... others) JoinStream(StreamExpression expression, StreamFactory factory) -
Method Summary
Modifier and TypeMethodDescriptionchildren()voidclose()intgetCost()getStream(int idx) protected booleanprotected TupleloadEqualTupleGroup(PushBackStream stream, LinkedList<Tuple> group, StreamComparator groupComparator) Given the stream, start from beginning and load group with all tuples that are equal to the first in stream (including the first one in the stream).voidopen()voidsetStreamContext(StreamContext context) toExplanation(StreamFactory factory) Returns an explanation about the stream objecttoExpression(StreamFactory factory) protected abstract voidMethods inherited from class org.apache.solr.client.solrj.io.stream.TupleStream
getShards, getShards, getStreamNodeId, getStreamSort, read, writeMapMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.solr.common.MapWriter
jsonStr, toMap, writeMethods inherited from interface org.apache.solr.common.NavigableObject
_forEachEntry, _forEachEntry, _forEachEntry, _get, _get, _getStr, _getStr, _size
-
Field Details
-
eq
-
-
Constructor Details
-
JoinStream
-
JoinStream
- Throws:
IOException
-
-
Method Details
-
validateTupleOrder
- Throws:
IOException
-
toExpression
- Specified by:
toExpressionin interfaceExpressible- Throws:
IOException
-
toExplanation
Description copied from interface:ExpressibleReturns an explanation about the stream object- Specified by:
toExplanationin interfaceExpressible- Specified by:
toExplanationin classTupleStream- Parameters:
factory- Stream factory for this, contains information about the function name- Returns:
- Explanation about this stream object containing explanations of any child stream objects
- Throws:
IOException- throw on any error
-
setStreamContext
- Specified by:
setStreamContextin classTupleStream
-
open
- Specified by:
openin classTupleStream- Throws:
IOException
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classTupleStream- Throws:
IOException
-
children
- Specified by:
childrenin classTupleStream
-
getStream
-
isValidTupleOrder
protected boolean isValidTupleOrder() -
loadEqualTupleGroup
protected Tuple loadEqualTupleGroup(PushBackStream stream, LinkedList<Tuple> group, StreamComparator groupComparator) throws IOException Given the stream, start from beginning and load group with all tuples that are equal to the first in stream (including the first one in the stream). All matched tuples are removed from the stream. Result is at least one tuple will be read from the stream and 0 or more tuples will exist in the group. If the first tuple is EOF then the group will have 0 items. Else it will have at least one item. The first group member is returned.- Parameters:
group- - should be empty- Throws:
IOException
-
getCost
public int getCost()- Overrides:
getCostin classTupleStream
-