View Javadoc

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