@Override public TimestampedValue<T> decode(InputStream inStream) throws IOException { T value = valueCoder.decode(inStream); Instant timestamp = InstantCoder.of().decode(inStream); return TimestampedValue.of(value, timestamp); }
@Override public Timer<T> decode(InputStream inStream) throws CoderException, IOException { Instant instant = InstantCoder.of().decode(inStream); T value = payloadCoder.decode(inStream); return Timer.of(instant, value); }
@Override public KinesisRecord decode(InputStream inStream) throws IOException { ByteBuffer data = ByteBuffer.wrap(BYTE_ARRAY_CODER.decode(inStream)); String sequenceNumber = STRING_CODER.decode(inStream); String partitionKey = STRING_CODER.decode(inStream); Instant approximateArrivalTimestamp = INSTANT_CODER.decode(inStream); long subSequenceNumber = VAR_LONG_CODER.decode(inStream); Instant readTimestamp = INSTANT_CODER.decode(inStream); String streamName = STRING_CODER.decode(inStream); String shardId = STRING_CODER.decode(inStream); return new KinesisRecord( data, sequenceNumber, subSequenceNumber, partitionKey, approximateArrivalTimestamp, readTimestamp, streamName, shardId); } }
@Override public WindowedValue<T> decode(InputStream inStream, Context context) throws CoderException, IOException { Instant timestamp = InstantCoder.of().decode(inStream); Collection<? extends BoundedWindow> windows = windowsCoder.decode(inStream); PaneInfo pane = PaneInfoCoder.INSTANCE.decode(inStream); T value = valueCoder.decode(inStream, context); // Because there are some remaining (incorrect) uses of WindowedValue with no windows, // we call this deprecated no-validation path when decoding return WindowedValue.createWithoutValidation(value, timestamp, windows, pane); }
@Override public ValueInSingleWindow<T> decode(InputStream inStream, Context context) throws IOException { Instant timestamp = InstantCoder.of().decode(inStream); BoundedWindow window = windowCoder.decode(inStream); PaneInfo pane = PaneInfo.PaneInfoCoder.INSTANCE.decode(inStream); T value = valueCoder.decode(inStream, context); return new AutoValue_ValueInSingleWindow<>(value, timestamp, window, pane); }
@Override public TimerData decode(InputStream inStream) throws CoderException, IOException { String timerId = STRING_CODER.decode(inStream); StateNamespace namespace = StateNamespaces.fromString(STRING_CODER.decode(inStream), windowCoder); Instant timestamp = INSTANT_CODER.decode(inStream); TimeDomain domain = TimeDomain.valueOf(STRING_CODER.decode(inStream)); return TimerData.of(timerId, namespace, timestamp, domain); }