Map<String, Object> kvMap = (Map<String, Object>) value; Coder valueCoder = ((WindowedValue.FullWindowedValueCoder) coder).getValueCoder(); Coder windowCoder = ((WindowedValue.FullWindowedValueCoder) coder).getWindowCoder(); Object windowValue = convertValue(kvMap.get("value"), coderSpec.getComponents().get(0), valueCoder);
windowedValueKeyValueCoder = windowedValueKeyValueCoderOf( keyCoder, wvCoder.getValueCoder(), wvCoder.getWindowCoder());
kvCoder.getKeyCoder(), kvCoder.getValueCoder(), (Coder<BoundedWindow>) windowedValueCoder.getWindowCoder());
UpdateStateByKeyFunction( final List<Integer> sourceIds, final WindowingStrategy<?, W> windowingStrategy, final FullWindowedValueCoder<InputT> wvCoder, final Coder<K> keyCoder, final SerializablePipelineOptions options, final String logPrefix) { this.wvCoder = wvCoder; this.keyCoder = keyCoder; this.sourceIds = sourceIds; this.timerDataCoder = timerDataCoderOf(windowingStrategy); this.windowingStrategy = windowingStrategy; this.options = options; this.itrWvCoder = IterableCoder.of(wvCoder); this.logPrefix = logPrefix; this.wvKvIterCoder = windowedValueKeyValueCoderOf( keyCoder, wvCoder.getValueCoder(), ((FullWindowedValueCoder<InputT>) wvCoder).getWindowCoder()); }
@Override public CloudObject toCloudObject(FullWindowedValueCoder target, SdkComponents sdkComponents) { CloudObject result = CloudObject.forClassName(CloudObjectKinds.KIND_WINDOWED_VALUE); Structs.addBoolean(result, PropertyNames.IS_WRAPPER, true); return addComponents( result, ImmutableList.<Coder<?>>of(target.getValueCoder(), target.getWindowCoder()), sdkComponents); }