View Javadoc

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   * Represents the settings for a {@link MemcachedVCacheService}.
18   * They are created using the {@link MemcachedVCacheServiceSettingsBuilder},
19   * which you should consult for the description of each property.
20   *
21   * @since 1.3.0
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  }