RedissonCachedSeatGeekClient.java
package org.oxerr.seatgeek.client.cached.redisson;
import java.util.concurrent.Executor;
import java.util.concurrent.ForkJoinPool;
import org.oxerr.seatgeek.client.SeatGeekClient;
import org.oxerr.seatgeek.client.cached.CachedSeatGeekClient;
import org.redisson.api.RedissonClient;
public class RedissonCachedSeatGeekClient implements CachedSeatGeekClient {
private final SeatGeekClient seatGeekClient;
private final RedissonCachedListingService cachedListingService;
public RedissonCachedSeatGeekClient(
SeatGeekClient seatGeekClient,
RedissonClient redissonClient,
String keyPrefix
) {
this(seatGeekClient, redissonClient, keyPrefix, ForkJoinPool.commonPool());
}
public RedissonCachedSeatGeekClient(
SeatGeekClient seatGeekClient,
RedissonClient redissonClient,
String keyPrefix,
Executor executor
) {
this(seatGeekClient, redissonClient, keyPrefix, executor, true);
}
public RedissonCachedSeatGeekClient(
SeatGeekClient seatGeekClient,
RedissonClient redissonClient,
String keyPrefix,
Executor executor,
boolean create
) {
this(
seatGeekClient,
new RedissonCachedListingService(
seatGeekClient.getListingService(),
redissonClient,
keyPrefix,
executor,
create
)
);
}
public RedissonCachedSeatGeekClient(
SeatGeekClient seatGeekClient,
RedissonCachedListingService cachedListingService
) {
this.seatGeekClient = seatGeekClient;
this.cachedListingService = cachedListingService;
}
@Override
public SeatGeekClient getClient() {
return this.seatGeekClient;
}
@Override
public RedissonCachedListingService getCachedListingService() {
return this.cachedListingService;
}
}