1 package com.atlassian.vcache.internal.memcached;
2
3 import com.atlassian.vcache.internal.BegunTransactionalActivityHandler;
4 import com.atlassian.vcache.internal.RequestContext;
5 import com.atlassian.vcache.internal.VCacheCreationHandler;
6 import com.atlassian.vcache.internal.VCacheSettingsDefaultsProvider;
7 import com.atlassian.vcache.internal.core.ExternalCacheKeyGenerator;
8 import com.atlassian.vcache.internal.core.metrics.MetricsCollector;
9 import net.spy.memcached.MemcachedClientIF;
10
11 import java.util.function.Function;
12 import java.util.function.Supplier;
13
14 import static java.util.Objects.requireNonNull;
15
16
17
18
19
20
21
22
23 public class MemcachedVCacheServiceSettings {
24 private final Supplier<MemcachedClientIF> clientSupplier;
25 private final Supplier<RequestContext> contextSupplier;
26 private final VCacheSettingsDefaultsProvider defaultsProvider;
27 private final VCacheCreationHandler creationHandler;
28 private final MetricsCollector metricsCollector;
29 private final ExternalCacheKeyGenerator externalCacheKeyGenerator;
30 private final BegunTransactionalActivityHandler begunTransactionalActivityHandler;
31 private final Function<String, Boolean> dontExternaliseCache;
32 private final boolean serializationHack;
33 private Supplier<RequestContext> workContextContextSupplier;
34
35 MemcachedVCacheServiceSettings(Supplier<MemcachedClientIF> clientSupplier,
36 Supplier<RequestContext> contextSupplier,
37 Supplier<RequestContext> workContextContextSupplier,
38 VCacheSettingsDefaultsProvider defaultsProvider,
39 VCacheCreationHandler creationHandler,
40 MetricsCollector metricsCollector,
41 ExternalCacheKeyGenerator externalCacheKeyGenerator,
42 BegunTransactionalActivityHandler begunTransactionalActivityHandler,
43 Function<String, Boolean> dontExternaliseCache,
44 boolean serializationHack) {
45 this.clientSupplier = requireNonNull(clientSupplier);
46 this.contextSupplier = requireNonNull(contextSupplier);
47 this.workContextContextSupplier = requireNonNull(workContextContextSupplier);
48 this.defaultsProvider = requireNonNull(defaultsProvider);
49 this.creationHandler = requireNonNull(creationHandler);
50 this.metricsCollector = requireNonNull(metricsCollector);
51 this.externalCacheKeyGenerator = requireNonNull(externalCacheKeyGenerator);
52 this.begunTransactionalActivityHandler = requireNonNull(begunTransactionalActivityHandler);
53 this.dontExternaliseCache = requireNonNull(dontExternaliseCache);
54 this.serializationHack = serializationHack;
55 }
56
57 public Supplier<MemcachedClientIF> getClientSupplier() {
58 return clientSupplier;
59 }
60
61 public Supplier<RequestContext> getContextSupplier() {
62 return contextSupplier;
63 }
64
65 public VCacheSettingsDefaultsProvider getDefaultsProvider() {
66 return defaultsProvider;
67 }
68
69 public VCacheCreationHandler getCreationHandler() {
70 return creationHandler;
71 }
72
73 public MetricsCollector getMetricsCollector() {
74 return metricsCollector;
75 }
76
77 public ExternalCacheKeyGenerator getExternalCacheKeyGenerator() {
78 return externalCacheKeyGenerator;
79 }
80
81 public BegunTransactionalActivityHandler getBegunTransactionalActivityHandler() {
82 return begunTransactionalActivityHandler;
83 }
84
85 public Function<String, Boolean> getDontExternaliseCache() {
86 return dontExternaliseCache;
87 }
88
89 public Supplier<RequestContext> getWorkContextContextSupplier() {
90 return workContextContextSupplier;
91 }
92
93 public boolean isSerializationHack() {
94 return serializationHack;
95 }
96 }