com.atlassian.cache
Class CacheSettingsBuilder

java.lang.Object
  extended by com.atlassian.cache.CacheSettingsBuilder

@PublicApi
public class CacheSettingsBuilder
extends Object

A builder for creating CacheSettings instances.

Since:
2.0

Constructor Summary
CacheSettingsBuilder()
           
 
Method Summary
 CacheSettings build()
           
 CacheSettingsBuilder expireAfterAccess(long expireAfter, TimeUnit timeUnit)
          Set a hint for the cache regarding how long entries should be held in the cache.
 CacheSettingsBuilder expireAfterWrite(long expireAfter, TimeUnit timeUnit)
          Set a hint for the cache regarding how long entries should be held in the cache.
 CacheSettingsBuilder flushable()
          Indicates that this cache can be flushed by the cache manager when desired.
 CacheSettingsBuilder local()
          Indicates that this cache should be local to the node (JVM) where the cache is created.
 CacheSettingsBuilder maxEntries(int maxEntries)
          Indicates that this cache can have a maximum number of entries.
 CacheSettingsBuilder remote()
          Indicates that this cache should be clustered in a clustered deployment.
 CacheSettingsBuilder replicateAsynchronously()
          Indicates that in a clustered environment with replicated caches, this cache should replicate asynchronously.
 CacheSettingsBuilder replicateSynchronously()
          Indicates that in a clustered environment with replicated caches, this cache should replicate synchronously.
 CacheSettingsBuilder replicateViaCopy()
          Indicates that in a clustered environment with replicated caches, this cache should replicate put and update operations by copying the relevant key and value across the wire (requiring both of them to be Serializable).
 CacheSettingsBuilder replicateViaInvalidation()
          Indicates that in a clustered environment with replicated caches, this cache should replicate by sending only the key across the wire, for invalidation by the other nodes in the cluster; this requires only the key to be Serializable.
 CacheSettingsBuilder unflushable()
          Indicates that this cache cannot be flushed by the cache manager when desired.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CacheSettingsBuilder

public CacheSettingsBuilder()
Method Detail

build

@Nonnull
public CacheSettings build()
Returns:
a new CacheSettings instance with

expireAfterAccess

@Nonnull
public CacheSettingsBuilder expireAfterAccess(long expireAfter,
                                                      @Nonnull
                                                      TimeUnit timeUnit)
Set a hint for the cache regarding how long entries should be held in the cache.

Parameters:
expireAfter - Time to retain entries for since their last access.
timeUnit - The TimeUnit for the time
Returns:
this builder

expireAfterWrite

@Nonnull
public CacheSettingsBuilder expireAfterWrite(long expireAfter,
                                                     @Nonnull
                                                     TimeUnit timeUnit)
Set a hint for the cache regarding how long entries should be held in the cache.

Parameters:
expireAfter - Time to retain entries from when they were created.
timeUnit - The TimeUnit for the time
Returns:
this builder

flushable

@Nonnull
public CacheSettingsBuilder flushable()
Indicates that this cache can be flushed by the cache manager when desired.

Returns:
this builder

unflushable

@Nonnull
public CacheSettingsBuilder unflushable()
Indicates that this cache cannot be flushed by the cache manager when desired.

Returns:
this builder

maxEntries

@Nonnull
public CacheSettingsBuilder maxEntries(int maxEntries)
Indicates that this cache can have a maximum number of entries.

Parameters:
maxEntries - The maximum number of entries. Must be greater than zero.
Returns:
this builder

replicateAsynchronously

@Nonnull
public CacheSettingsBuilder replicateAsynchronously()
Indicates that in a clustered environment with replicated caches, this cache should replicate asynchronously. By default, it is up to the host application as to whether replication is synchronous or asynchronous.
When it is synchronous, cache mutations block on the originating node until all nodes in the cluster have replicated the mutation. Asynchronous replication provides greater responsiveness at the expense of consistency.

Returns:
this builder

replicateSynchronously

@Nonnull
public CacheSettingsBuilder replicateSynchronously()
Indicates that in a clustered environment with replicated caches, this cache should replicate synchronously.

Returns:
this builder
Since:
2.3.0
See Also:
replicateAsynchronously

replicateViaCopy

@Nonnull
public CacheSettingsBuilder replicateViaCopy()
Indicates that in a clustered environment with replicated caches, this cache should replicate put and update operations by copying the relevant key and value across the wire (requiring both of them to be Serializable).
By default, it is up to the host application as to whether replication is via copy or invalidation.

Returns:
this builder
See Also:
replicateViaInvalidation()

replicateViaInvalidation

@Nonnull
public CacheSettingsBuilder replicateViaInvalidation()
Indicates that in a clustered environment with replicated caches, this cache should replicate by sending only the key across the wire, for invalidation by the other nodes in the cluster; this requires only the key to be Serializable.
By default, it is up to the host application as to whether replication is via copy or invalidation.

Returns:
this builder
Since:
2.3.0
See Also:
replicateViaCopy

local

@Nonnull
public CacheSettingsBuilder local()
Indicates that this cache should be local to the node (JVM) where the cache is created. By default, caches will be clustered in a clustered deployment.

Returns:
this builder

remote

@Nonnull
public CacheSettingsBuilder remote()
Indicates that this cache should be clustered in a clustered deployment.

Returns:
this builder


Copyright © 2015 Atlassian. All rights reserved.