THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
package org.apache.kafka.streams.query; /** * Interactive query for retrieving a set of records with the same specified key and different timestamps within the specified time range. */ @Evolving public final class MultiVersionedKeyQuery<K, V> implements Query<ValueIterator<VersionedRecord<V>>> { private final K key; private final Optional<Instant> fromTimestamp; private final Optional<Instant> asOfTimestamp; private final boolean isAscending; private MultiVersionedKeyQuery( final K key, Optional<Instant> fromTimestamp, Optional<Instant> asOfTimestamp, boolean isAscending) { this.key = Objects.requireNonNull(key); this.fromTimestamp = fromTimestamp; this.asOfTimestamp = asOfTimestamp; this.isAscending = isAscending; } /** * Creates a query that will retrieve the set of records identified by {@code key} if any exists * (or {@code null} otherwise). * @param key The key to retrieve * @throws NullPointerException if @param key is null * @param <K> The type of the key * @param <V> The type of the value that will be retrieved */ public static <K, V> MultiVersionedKeyQuery<K, V> withKey(final K key); /** * Specifies the starting time point for the key query. * The key query returns all the records that are valid in the time range starting from the timestamp {@code fromTimestamp}. * @param fromTimestamp The starting time point * @throws NullPointerException if @param fromTimestamp is null */ public MultiVersionedKeyQuery<K, V> from(Instant fromTimestamp); /** * Specifies the ending time point for the key query. * The key query returns all the records that have timestamp <= {@code asOfTimestamp}. * @param asOfTimestamp The ending time point * @throws NullPointerException if @param asOfTimestamp is null */ public MultiVersionedKeyQuery<K, V> asOf(Instant asOfTimestamp); /** * Specifies the starting and ending points of the key query as MIN and MAX respectively. * Therefore, the query returns all the existing records in the state store with the specified key. * @throws RuntimeException if {@code fromTimestamp} or {@code asOfTimestamp} have been already * specified. */ public MultiVersionedKeyQuery<K, V> allVersions(); /** * Specifies the order of the returned records by the query as descending by timestamp. */ public MultiVersionedKeyQuery<K, V> withDescendingTimestamps(); /** * The key that was specified for this query. */ public K key(); /** * The starting time point of the query, if specified */ public Optional<Instant> fromTimestamp(); /** * The ending time point of the query, if specified */ public Optional<Instant> asOfTimestamp(); /** * @return true if the query returns records in ascending order of timestamps */ public boolean isAscending (); } |
...