All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.redis.spring.batch.reader.KeyComparisonItemReader Maven / Gradle / Ivy

package com.redis.spring.batch.reader;

import com.redis.spring.batch.RedisItemReader;

import io.lettuce.core.AbstractRedisClient;
import io.lettuce.core.ReadFrom;
import io.lettuce.core.codec.RedisCodec;

public class KeyComparisonItemReader extends RedisItemReader> {

	public static final int DEFAULT_TARGET_POOL_SIZE = RedisItemReader.DEFAULT_POOL_SIZE;

	private AbstractRedisClient targetClient;
	private int targetPoolSize = DEFAULT_TARGET_POOL_SIZE;
	private KeyComparatorOptions comparatorOptions = new KeyComparatorOptions();
	private ReadFrom targetReadFrom;

	public KeyComparisonItemReader(RedisCodec codec, MemKeyValueRead source,
			MemKeyValueRead target) {
		super(codec, new KeyComparisonRead<>(codec, source, target));
	}

	public void setTargetClient(AbstractRedisClient client) {
		this.targetClient = client;
	}

	public void setTargetPoolSize(int size) {
		this.targetPoolSize = size;
	}

	public void setTargetReadFrom(ReadFrom readFrom) {
		this.targetReadFrom = readFrom;
	}

	public KeyComparatorOptions getComparatorOptions() {
		return comparatorOptions;
	}

	public void setComparatorOptions(KeyComparatorOptions options) {
		this.comparatorOptions = options;
	}

	@Override
	protected synchronized void doOpen() throws Exception {
		KeyComparisonRead keyComparisonRead = (KeyComparisonRead) operation;
		keyComparisonRead.setTargetClient(targetClient);
		keyComparisonRead.setTargetPoolSize(targetPoolSize);
		keyComparisonRead.setTargetReadFrom(targetReadFrom);
		keyComparisonRead.setComparator(comparator());
		super.doOpen();
	}

	private KeyComparator comparator() {
		KeyComparator comparator = new KeyComparator<>();
		comparator.setOptions(comparatorOptions);
		return comparator;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy