private <T> void setKeyContextElement(StreamRecord<T> record, KeySelector<T, ?> selector) throws Exception { if (selector != null) { Object key = selector.getKey(record.getValue()); setCurrentKey(key); } }
@Override public void startNewKey(Key key) { currentValue = null; operator.setCurrentKey(key); }
@Override public void setCurrentKey(BaseRow key) { operator.setCurrentKey(key); // set current key to all the registered stateDataviews for (StateDataView<BaseRow> dataView : registeredStateDataViews) { dataView.setCurrentKey(key); } }
private <T> void setKeyContextElement(StreamRecord<T> record, KeySelector<T, ?> selector) throws Exception { if (selector != null) { Object key = selector.getKey(record.getValue()); setCurrentKey(key); } }
private <T> void setKeyContextElement(StreamRecord<T> record, KeySelector<T, ?> selector) throws Exception { if (selector != null) { Object key = selector.getKey(record.getValue()); setCurrentKey(key); } }
@Override public void keyDone() throws Exception { contextOperator.setCurrentKey(currentKey); context.globalState = contextOperator.getKeyedStateStore(); function.process(currentKey, window, context, unionIterator, out); } }
private <T> void setKeyContextElement(StreamRecord<T> record, KeySelector<T, ?> selector) throws Exception { if (selector != null) { Object key = selector.getKey(record.getValue()); setCurrentKey(key); } }
@Override public void evaluateWindow(Collector<Result> out, final TimeWindow window, AbstractStreamOperator<Result> operator) throws Exception { if (previousPanes.isEmpty()) { // optimized path for single pane case (tumbling window) for (KeyMap.Entry<Key, ArrayList<Type>> entry : latestPane) { Key key = entry.getKey(); operator.setCurrentKey(key); context.globalState = operator.getKeyedStateStore(); function.process(entry.getKey(), window, context, entry.getValue(), out); } } else { // general code path for multi-pane case WindowFunctionTraversal<Key, Type, Result> evaluator = new WindowFunctionTraversal<>( function, window, out, operator, context); traverseAllPanes(evaluator, evaluationPass); } evaluationPass++; }