View Javadoc

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 }