1 package com.atlassian.cache.memory;
2
3 import java.util.concurrent.TimeUnit;
4
5 import javax.annotation.Nonnull;
6 import javax.annotation.Nullable;
7
8 import com.atlassian.cache.CacheSettings;
9 import com.atlassian.cache.ManagedCache;
10 import com.atlassian.instrumentation.caches.CacheCollector;
11
12 abstract class ManagedCacheSupport implements ManagedCache
13 {
14 private final String name;
15 private final CacheSettings settings;
16
17 public ManagedCacheSupport(String name, CacheSettings settings)
18 {
19 this.name = name;
20 this.settings = settings;
21 }
22
23 @Nonnull
24 @Override
25 public final String getName()
26 {
27 return name;
28 }
29
30 @Override
31 public final boolean isFlushable()
32 {
33 return settings.getFlushable(true);
34 }
35
36 @Override
37 public final boolean isLocal()
38 {
39 return true;
40 }
41
42 @Override
43 public final boolean isReplicateAsynchronously()
44 {
45 return false;
46 }
47
48 @Override
49 public final boolean isReplicateViaCopy()
50 {
51 return false;
52 }
53
54 @Override
55 public final Integer currentMaxEntries()
56 {
57 return settings.getMaxEntries();
58 }
59
60 @Override
61 public final boolean updateMaxEntries(int newValue)
62 {
63 return false;
64 }
65
66 @Override
67 public final Long currentExpireAfterAccessMillis()
68 {
69 return settings.getExpireAfterAccess();
70 }
71
72 @Override
73 public final boolean updateExpireAfterAccess(long expireAfter, @Nonnull TimeUnit timeUnit)
74 {
75 return false;
76 }
77
78 @Override
79 public final Long currentExpireAfterWriteMillis()
80 {
81 return settings.getExpireAfterWrite();
82 }
83
84 @Override
85 public final boolean updateExpireAfterWrite(long expireAfter, @Nonnull TimeUnit timeUnit)
86 {
87 return false;
88 }
89
90 @Override
91 public boolean isStatisticsEnabled()
92 {
93 return settings.getStatisticsEnabled(true);
94 }
95
96 @Override
97 public void setStatistics(boolean enabled)
98 {
99 throw new UnsupportedOperationException("setStatistics not implemented");
100 }
101
102 @Nullable
103 @Override
104 public CacheCollector getCacheCollector()
105 {
106 return null;
107 }
108 }