View Javadoc
1   package org.oxerr.seatgeek.client.cached.redisson;
2   
3   import java.util.concurrent.Executor;
4   import java.util.concurrent.ForkJoinPool;
5   
6   import org.oxerr.seatgeek.client.SeatGeekClient;
7   import org.oxerr.seatgeek.client.cached.CachedSeatGeekClient;
8   import org.redisson.api.RedissonClient;
9   
10  public class RedissonCachedSeatGeekClient implements CachedSeatGeekClient {
11  
12  	private final SeatGeekClient seatGeekClient;
13  
14  	private final RedissonCachedListingService cachedListingService;
15  
16  	public RedissonCachedSeatGeekClient(
17  		SeatGeekClient seatGeekClient,
18  		RedissonClient redissonClient,
19  		String keyPrefix
20  	) {
21  		this(seatGeekClient, redissonClient, keyPrefix, ForkJoinPool.commonPool());
22  	}
23  
24  	public RedissonCachedSeatGeekClient(
25  		SeatGeekClient seatGeekClient,
26  		RedissonClient redissonClient,
27  		String keyPrefix,
28  		Executor executor
29  	) {
30  		this(seatGeekClient, redissonClient, keyPrefix, executor, true);
31  	}
32  
33  	public RedissonCachedSeatGeekClient(
34  		SeatGeekClient seatGeekClient,
35  		RedissonClient redissonClient,
36  		String keyPrefix,
37  		Executor executor,
38  		boolean create
39  	) {
40  		this(
41  			seatGeekClient,
42  			new RedissonCachedListingService(
43  				seatGeekClient.getListingService(),
44  				redissonClient,
45  				keyPrefix,
46  				executor,
47  				create
48  			)
49  		);
50  	}
51  
52  	public RedissonCachedSeatGeekClient(
53  		SeatGeekClient seatGeekClient,
54  		RedissonCachedListingService cachedListingService
55  	) {
56  		this.seatGeekClient = seatGeekClient;
57  		this.cachedListingService = cachedListingService;
58  	}
59  
60  	@Override
61  	public SeatGeekClient getClient() {
62  		return this.seatGeekClient;
63  	}
64  
65  	@Override
66  	public RedissonCachedListingService getCachedListingService() {
67  		return this.cachedListingService;
68  	}
69  
70  }