/** * Configure a hash target type. Changes the emitted {@link Record} type to {@link ObjectRecord}. * * @param targetType must not be {@literal null}. * @return {@code this} {@link StreamReceiverOptionsBuilder}. */ @SuppressWarnings("unchecked") public <NV> StreamReceiverOptionsBuilder<K, ObjectRecord<K, NV>> targetType(Class<NV> targetType) { Assert.notNull(targetType, "Target type must not be null"); this.targetType = targetType; if (this.hashMapper == null) { hashKeySerializer(SerializationPair.raw()); hashValueSerializer(SerializationPair.raw()); return (StreamReceiverOptionsBuilder) objectMapper(new ObjectHashMapper()); } return (StreamReceiverOptionsBuilder) this; }
/** * Creates a new {@link RedisSerializationContext} using a {@link SerializationPair#raw()} serialization pair. * * @return */ static RedisSerializationContext<byte[], byte[]> raw() { return just(SerializationPair.raw()); }
/** * Creates a new {@link RedisSerializationContext} using a {@link SerializationPair#raw()} serialization pair. * * @return */ static RedisSerializationContext<byte[], byte[]> raw() { return just(SerializationPair.raw()); }
/** * Creates a new {@link RedisSerializationContext} using a {@link SerializationPair#raw()} serialization pair. * * @return */ static RedisSerializationContext<byte[], byte[]> raw() { return just(SerializationPair.raw()); }
/** * @return a new builder for {@link StreamReceiverOptions}. */ @SuppressWarnings("unchecked") public static <T> StreamReceiverOptionsBuilder<String, ObjectRecord<String, T>> builder( HashMapper<T, byte[], byte[]> hashMapper) { SerializationPair<String> serializer = SerializationPair.fromSerializer(StringRedisSerializer.UTF_8); SerializationPair<ByteBuffer> raw = SerializationPair.raw(); return new StreamReceiverOptionsBuilder<>().keySerializer(serializer).hashKeySerializer(raw) .hashValueSerializer(raw).objectMapper(hashMapper); }