View Javadoc

1   package com.atlassian.cache.ehcache;
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  import net.sf.ehcache.Ehcache;
11  
12  import static java.util.concurrent.TimeUnit.MILLISECONDS;
13  import static java.util.concurrent.TimeUnit.SECONDS;
14  
15  abstract class ManagedCacheSupport implements ManagedCache
16  {
17      private final Ehcache delegate;
18      private final CacheSettings settings;
19  
20      public ManagedCacheSupport(Ehcache delegate, CacheSettings settings)
21      {
22          this.delegate = delegate;
23          this.settings = settings;
24      }
25  
26      @Nonnull
27      @Override
28      public final String getName()
29      {
30          return delegate.getName();
31      }
32  
33      @Override
34      public final boolean isFlushable()
35      {
36          return settings.getFlushable(true);
37      }
38  
39      @Override
40      public final boolean isLocal()
41      {
42          return settings.getLocal(false);
43      }
44  
45      @Override
46      public final boolean isReplicateAsynchronously()
47      {
48          return settings.getReplicateAsynchronously(false);
49      }
50  
51      @Override
52      public final boolean isReplicateViaCopy()
53      {
54          return settings.getReplicateViaCopy(false);
55      }
56  
57      @Override
58      public final Integer currentMaxEntries()
59      {
60          return (int) delegate.getCacheConfiguration().getMaxEntriesLocalHeap();
61      }
62  
63      @Override
64      public final boolean updateMaxEntries(int newValue)
65      {
66          delegate.getCacheConfiguration().setMaxEntriesLocalHeap(newValue);
67          return true;
68      }
69  
70      @Override
71      public final Long currentExpireAfterAccessMillis()
72      {
73          return MILLISECONDS.convert(
74              delegate.getCacheConfiguration().getTimeToIdleSeconds(), SECONDS);
75      }
76  
77      @Override
78      public final boolean updateExpireAfterAccess(long expireAfter, @Nonnull TimeUnit timeUnit)
79      {
80          delegate.getCacheConfiguration().setTimeToIdleSeconds(timeUnit.toSeconds(expireAfter));
81          return true;
82      }
83  
84      @Override
85      public final Long currentExpireAfterWriteMillis()
86      {
87          return MILLISECONDS.convert(
88              delegate.getCacheConfiguration().getTimeToLiveSeconds(), SECONDS);
89      }
90  
91      @Override
92      public final boolean updateExpireAfterWrite(long expireAfter, @Nonnull TimeUnit timeUnit)
93      {
94          delegate.getCacheConfiguration().setTimeToLiveSeconds(timeUnit.toSeconds(expireAfter));
95          return true;
96      }
97  
98  }