Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
/**
* {@code CogroupedKStream} is an abstraction of multiple <i>grouped</i> record streams of {@link KeyValue} pairs.
* It is an intermediate representation of one or more {@link KStream}s in order to apply one or more aggregation
* operations on the original {@link KStream} records.
* <p>
* It is an intermediate representation after a grouping of {@link KStream}s, before the aggregations are applied to
* the new partitions resulting in a {@link KTable}.
* <p>
* A {@code CogroupedKStream} must be obtained from a {@link KGroupedStream} via 
* {@link KGroupedStream#cogroup(Initializer, Aggregator, org.apache.kafka.common.serialization.Serde, String) cogroup(...)}.
*
* @param <K> Type of keys
* @param <RK> Type of key in the table, either K or Windowed&ltK&gt
* @param <V> Type of aggregate values
*/
public interface CogroupedKStream<K, V> {

	<T> CogroupedKStream<K, V> cogroup(final KGroupedStream<K, T> groupedStream, final Aggregator<? super K, ? super T, V> aggregator);
	KTable<K, V> aggregate(final String storeName);
	KTable<K, V> aggregate(final StateStoreSupplier<KeyValueStore> storeSupplier);
	KTable<Windowed<K>, V> aggregate(final Merger<? super K, T>V> sessionMerger, final SessionWindows sessionWindows, final String storeName);
	KTable<Windowed<K>, V> aggregate(final Merger<? super K, T>V> sessionMerger, final SessionWindows sessionWindows, final StateStoreSupplier<SessionStore> storeSupplier);
	<W extends Window> KTable<Windowed<K>, V> aggregate(final Windows<W> windows, final String storeName);
	<W extends Window> KTable<Windowed<K>, V> aggregate(final Windows<W> windows, final StateStoreSupplier<WindowStore> storeSupplier);
}

...