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