/** * Sets the 1st element of this tuple to the given {@code value}. * * @param value the new value * @return a copy of this tuple with a new value for the 1st element of this Tuple. */ public Tuple4<T1, T2, T3, T4> update1(T1 value) { return new Tuple4<>(value, _2, _3, _4); }
/** * Sets the 3rd element of this tuple to the given {@code value}. * * @param value the new value * @return a copy of this tuple with a new value for the 3rd element of this Tuple. */ public Tuple4<T1, T2, T3, T4> update3(T3 value) { return new Tuple4<>(_1, _2, value, _4); }
/** * Sets the 4th element of this tuple to the given {@code value}. * * @param value the new value * @return a copy of this tuple with a new value for the 4th element of this Tuple. */ public Tuple4<T1, T2, T3, T4> update4(T4 value) { return new Tuple4<>(_1, _2, _3, value); }
/** * Sets the 2nd element of this tuple to the given {@code value}. * * @param value the new value * @return a copy of this tuple with a new value for the 2nd element of this Tuple. */ public Tuple4<T1, T2, T3, T4> update2(T2 value) { return new Tuple4<>(_1, value, _3, _4); }
/** * Creates a tuple of 4 elements. * * @param <T1> type of the 1st element * @param <T2> type of the 2nd element * @param <T3> type of the 3rd element * @param <T4> type of the 4th element * @param t1 the 1st element * @param t2 the 2nd element * @param t3 the 3rd element * @param t4 the 4th element * @return a tuple of 4 elements. */ static <T1, T2, T3, T4> Tuple4<T1, T2, T3, T4> of(T1 t1, T2 t2, T3 t3, T4 t4) { return new Tuple4<>(t1, t2, t3, t4); }
/** * Turns a sequence of {@code Tuple4} into a Tuple4 of {@code Seq}s. * * @param <T1> 1st component type * @param <T2> 2nd component type * @param <T3> 3rd component type * @param <T4> 4th component type * @param tuples an {@code Iterable} of tuples * @return a tuple of 4 {@link Seq}s. */ static <T1, T2, T3, T4> Tuple4<Seq<T1>, Seq<T2>, Seq<T3>, Seq<T4>> sequence4(Iterable<? extends Tuple4<? extends T1, ? extends T2, ? extends T3, ? extends T4>> tuples) { Objects.requireNonNull(tuples, "tuples is null"); final Stream<Tuple4<? extends T1, ? extends T2, ? extends T3, ? extends T4>> s = Stream.ofAll(tuples); return new Tuple4<>(s.map(Tuple4::_1), s.map(Tuple4::_2), s.map(Tuple4::_3), s.map(Tuple4::_4)); }
/** * Sets the 2nd element of this tuple to the given {@code value}. * * @param value the new value * @return a copy of this tuple with a new value for the 2nd element of this Tuple. */ public Tuple4<T1, T2, T3, T4> update2(T2 value) { return new Tuple4<>(_1, value, _3, _4); }
/** * Sets the 4th element of this tuple to the given {@code value}. * * @param value the new value * @return a copy of this tuple with a new value for the 4th element of this Tuple. */ public Tuple4<T1, T2, T3, T4> update4(T4 value) { return new Tuple4<>(_1, _2, _3, value); }
/** * Sets the 1st element of this tuple to the given {@code value}. * * @param value the new value * @return a copy of this tuple with a new value for the 1st element of this Tuple. */ public Tuple4<T1, T2, T3, T4> update1(T1 value) { return new Tuple4<>(value, _2, _3, _4); }
/** * Sets the 3rd element of this tuple to the given {@code value}. * * @param value the new value * @return a copy of this tuple with a new value for the 3rd element of this Tuple. */ public Tuple4<T1, T2, T3, T4> update3(T3 value) { return new Tuple4<>(_1, _2, value, _4); }
/** * Creates a tuple of 4 elements. * * @param <T1> type of the 1st element * @param <T2> type of the 2nd element * @param <T3> type of the 3rd element * @param <T4> type of the 4th element * @param t1 the 1st element * @param t2 the 2nd element * @param t3 the 3rd element * @param t4 the 4th element * @return a tuple of 4 elements. */ static <T1, T2, T3, T4> Tuple4<T1, T2, T3, T4> of(T1 t1, T2 t2, T3 t3, T4 t4) { return new Tuple4<>(t1, t2, t3, t4); }
/** * Turns a sequence of {@code Tuple4} into a Tuple4 of {@code Seq}s. * * @param <T1> 1st component type * @param <T2> 2nd component type * @param <T3> 3rd component type * @param <T4> 4th component type * @param tuples an {@code Iterable} of tuples * @return a tuple of 4 {@link Seq}s. */ static <T1, T2, T3, T4> Tuple4<Seq<T1>, Seq<T2>, Seq<T3>, Seq<T4>> sequence4(Iterable<? extends Tuple4<? extends T1, ? extends T2, ? extends T3, ? extends T4>> tuples) { Objects.requireNonNull(tuples, "tuples is null"); final Stream<Tuple4<? extends T1, ? extends T2, ? extends T3, ? extends T4>> s = Stream.ofAll(tuples); return new Tuple4<>(s.map(Tuple4::_1), s.map(Tuple4::_2), s.map(Tuple4::_3), s.map(Tuple4::_4)); }
.mapValues(v -> new Tuple4<>(-1, v, 0, v)) .to(solutionSetTopic, Produced.with(serialized.keySerde(), new KryoSerde<>()));