ConnectionResolverFactory.java
package redis.clients.jedis.executors;
import redis.clients.jedis.CommandFlagsRegistry;
import redis.clients.jedis.providers.ClusterConnectionProvider;
/**
* Factory for creating {@link ConnectionResolver} instances.
* <p>
* This factory provides access to the package-private connection resolver implementations.
*/
final class ConnectionResolverFactory {
private ConnectionResolverFactory() {
// Utility class
}
/**
* Creates a slot-based connection resolver for keyed commands.
* @param provider the cluster connection provider*
* @return a new SlotBasedConnectionResolver
*/
public static ConnectionResolver createSlotBasedResolver(ClusterConnectionProvider provider) {
return new SlotBasedConnectionResolver(provider);
}
/**
* Creates a round-robin connection resolver for keyless commands.
* @param provider the cluster connection provider
* @param flags the command flags registry
* @return a new RoundRobinConnectionResolver
*/
public static ConnectionResolver createRoundRobinResolver(ClusterConnectionProvider provider,
CommandFlagsRegistry flags) {
return new RoundRobinConnectionResolver(provider, flags);
}
/**
* Creates a replica-only connection resolver.
* @param provider the cluster connection provider
* @return a new ReplicaOnlyConnectionResolver
*/
public static ConnectionResolver createReplicaOnlyResolver(ClusterConnectionProvider provider) {
return new ReplicaOnlyConnectionResolver(provider);
}
}