com.atlassian.confluence.cache
Class DeferredOperationsCache<K,V>

java.lang.Object
  extended by com.atlassian.confluence.cache.DefaultConfluenceCache<K,V>
      extended by com.atlassian.confluence.cache.DeferredOperationsCache<K,V>
All Implemented Interfaces:
com.atlassian.cache.Cache<K,V>, com.atlassian.cache.ManagedCache, ConfigurableCache<K,V>, ConfluenceCache<K,V>

public class DeferredOperationsCache<K,V>
extends DefaultConfluenceCache<K,V>

An implementation of Cache that records changes to a delegate cache, only actually performing them when sync() is called. Deferred operations are still visible to the client, the actions are just not taken on the delegate cache.

For example, calling put(Object, Object) will not update the delegate cache, but the value will still be recorded for subsequent calls to get(Object) for the same key. Once sync() is called, the new value will be inserted in the delegate cache.

Objects of this class are NOT thread-safe. It is the client's responsibility to ensure serialized access to this object.


Constructor Summary
DeferredOperationsCache(com.atlassian.cache.Cache<K,V> delegate)
          Deprecated. since 5.7
 
Method Summary
 void clear()
          Clear the underlying object.
 boolean containsKey(K key)
           
static
<K,V> DeferredOperationsCache<K,V>
create(com.atlassian.cache.Cache<K,V> delegate, com.atlassian.cache.CacheLoader<K,V> loader)
           
 V get(K key)
           
 V get(K key, com.atlassian.cache.Supplier<? extends V> supplier)
           
 Collection<K> getKeys()
           
 String getName()
          Return name of the deferred object
 String getType()
          Return human readable type of the object
 boolean hasDeferredOperations()
          Return true if the deferred has operations requiring synchronisation.
 void put(K key, V value)
           
 void remove(K key)
           
 void removeAll()
           
 void sync()
          Perform synchronization.
 
Methods inherited from class com.atlassian.confluence.cache.DefaultConfluenceCache
addListener, currentExpireAfterAccessMillis, currentExpireAfterWriteMillis, currentMaxEntries, getDelegate, getManagedDelegate, getName, getStatistics, isFlushable, isLocal, isReplicateAsynchronously, isReplicateViaCopy, putIfAbsent, remove, removeListener, replace, setTimeToLive, updateExpireAfterAccess, updateExpireAfterWrite, updateMaxEntries
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DeferredOperationsCache

@Deprecated
public DeferredOperationsCache(com.atlassian.cache.Cache<K,V> delegate)
Deprecated. since 5.7

Construct a deferred operations cache wrapper

Parameters:
delegate - Cache to wrap
Method Detail

create

public static <K,V> DeferredOperationsCache<K,V> create(com.atlassian.cache.Cache<K,V> delegate,
                                                        com.atlassian.cache.CacheLoader<K,V> loader)

get

public V get(@Nonnull
             K key)
Specified by:
get in interface com.atlassian.cache.Cache<K,V>
Overrides:
get in class DefaultConfluenceCache<K,V>

get

@Nonnull
public V get(@Nonnull
                     K key,
                     @Nonnull
                     com.atlassian.cache.Supplier<? extends V> supplier)
Specified by:
get in interface com.atlassian.cache.Cache<K,V>
Overrides:
get in class DefaultConfluenceCache<K,V>

containsKey

public boolean containsKey(@Nonnull
                           K key)
Specified by:
containsKey in interface com.atlassian.cache.Cache<K,V>
Overrides:
containsKey in class DefaultConfluenceCache<K,V>

getKeys

@Nonnull
public Collection<K> getKeys()
Specified by:
getKeys in interface com.atlassian.cache.Cache<K,V>
Overrides:
getKeys in class DefaultConfluenceCache<K,V>

put

public void put(@Nonnull
                K key,
                @Nonnull
                V value)
Specified by:
put in interface com.atlassian.cache.Cache<K,V>
Overrides:
put in class DefaultConfluenceCache<K,V>

remove

public void remove(@Nonnull
                   K key)
Specified by:
remove in interface com.atlassian.cache.Cache<K,V>
Overrides:
remove in class DefaultConfluenceCache<K,V>

removeAll

public void removeAll()
Specified by:
removeAll in interface com.atlassian.cache.Cache<K,V>
Overrides:
removeAll in class DefaultConfluenceCache<K,V>

hasDeferredOperations

public boolean hasDeferredOperations()
Return true if the deferred has operations requiring synchronisation.

Returns:
true if the deferred has operations

getType

public String getType()
Return human readable type of the object

Returns:
human readable type of the object

clear

public void clear()
Clear the underlying object.

Specified by:
clear in interface com.atlassian.cache.ManagedCache
Overrides:
clear in class DefaultConfluenceCache<K,V>

sync

public void sync()
Perform synchronization.


getName

public String getName()
Return name of the deferred object

Returns:
name of the deferred object


Copyright © 2003–2015 Atlassian. All rights reserved.