org.infinispan.loaders.decorators
Class ReadOnlyStore

java.lang.Object
  extended by org.infinispan.loaders.decorators.AbstractDelegatingStore
      extended by org.infinispan.loaders.decorators.ReadOnlyStore
All Implemented Interfaces:
CacheLoader, CacheStore

public class ReadOnlyStore
extends AbstractDelegatingStore

A decorator that makes the underlying store a CacheLoader, i.e., suppressing all write methods.

Since:
4.0
Author:
Manik Surtani

Constructor Summary
ReadOnlyStore(CacheStore delegate)
           
 
Method Summary
 void clear()
          Clears all entries in the store
 void commit(GlobalTransaction tx)
          Commits a transaction that has been previously prepared.
 void fromStream(ObjectInput inputStream)
          Writes contents of the stream to the store.
 void prepare(List<? extends Modification> list, GlobalTransaction tx, boolean isOnePhase)
          Issues a prepare call with a set of modifications to be applied to the cache store
 void purgeExpired()
          Purges expired entries from the store.
 boolean remove(Object key)
          Removes an entry in the store.
 void rollback(GlobalTransaction tx)
          Rolls back a transaction that has been previously prepared

This method may be invoked on a transaction for which there is no prior CacheStore.prepare(java.util.List, org.infinispan.transaction.xa.GlobalTransaction, boolean).

 void store(InternalCacheEntry ed)
          Stores an entry
 
Methods inherited from class org.infinispan.loaders.decorators.AbstractDelegatingStore
containsKey, getCacheStoreConfig, getConfigurationClass, getDelegate, init, load, loadAll, removeAll, setDelegate, start, stop, toStream
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReadOnlyStore

public ReadOnlyStore(CacheStore delegate)
Method Detail

store

public void store(InternalCacheEntry ed)
Description copied from interface: CacheStore
Stores an entry

Specified by:
store in interface CacheStore
Overrides:
store in class AbstractDelegatingStore
Parameters:
ed - entry to store

fromStream

public void fromStream(ObjectInput inputStream)
Description copied from interface: CacheStore
Writes contents of the stream to the store. Implementations should expect that the stream contains data in an implementation-specific format, typically generated using CacheStore.toStream(java.io.ObjectOutput). While not a requirement, it is recommended that implementations make use of the Marshaller when dealing with the stream to make use of efficient marshalling.

It is imperative that implementations do not close the stream after finishing with it.

It is also recommended that implementations use their own start and end markers on the stream since other processes may write additional data to the stream after the cache store has written to it. As such, either markers or some other mechanism to prevent the store from reading too much information should be employed when writing to the stream in CacheStore.fromStream(java.io.ObjectInput) to prevent data corruption.

It can be assumed that the stream passed in already performs buffering such that the cache store implementation doesn't have to.

Specified by:
fromStream in interface CacheStore
Overrides:
fromStream in class AbstractDelegatingStore
Parameters:
inputStream - stream to read from

clear

public void clear()
Description copied from interface: CacheStore
Clears all entries in the store

Specified by:
clear in interface CacheStore
Overrides:
clear in class AbstractDelegatingStore

remove

public boolean remove(Object key)
Description copied from interface: CacheStore
Removes an entry in the store.

Specified by:
remove in interface CacheStore
Overrides:
remove in class AbstractDelegatingStore
Parameters:
key - key to remove
Returns:
true if the entry was removed; false if the entry wasn't found.

purgeExpired

public void purgeExpired()
Description copied from interface: CacheStore
Purges expired entries from the store.

Specified by:
purgeExpired in interface CacheStore
Overrides:
purgeExpired in class AbstractDelegatingStore

commit

public void commit(GlobalTransaction tx)
Description copied from interface: CacheStore
Commits a transaction that has been previously prepared.

This method may be invoked on a transaction for which there is no prior CacheStore.prepare(java.util.List, org.infinispan.transaction.xa.GlobalTransaction, boolean). The implementation would need to deal with this case acordingly. Typically, this would be a no-op, after ensuring any resources attached to the transaction are cleared up.

Also note that this method may be invoked on a thread which is different from the CacheStore.prepare(java.util.List, org.infinispan.transaction.xa.GlobalTransaction, boolean) invocation. As such, ThreadLocals should not be relied upon to maintain transaction context.

Specified by:
commit in interface CacheStore
Overrides:
commit in class AbstractDelegatingStore
Parameters:
tx - tx to commit

rollback

public void rollback(GlobalTransaction tx)
Description copied from interface: CacheStore
Rolls back a transaction that has been previously prepared

This method may be invoked on a transaction for which there is no prior CacheStore.prepare(java.util.List, org.infinispan.transaction.xa.GlobalTransaction, boolean). The implementation would need to deal with this case acordingly. Typically, this would be a no-op, after ensuring any resources attached to the transaction are cleared up.

Also note that this method may be invoked on a thread which is different from the CacheStore.prepare(java.util.List, org.infinispan.transaction.xa.GlobalTransaction, boolean) invocation. As such, ThreadLocals should not be relied upon to maintain transaction context.

Specified by:
rollback in interface CacheStore
Overrides:
rollback in class AbstractDelegatingStore
Parameters:
tx - tx to roll back

prepare

public void prepare(List<? extends Modification> list,
                    GlobalTransaction tx,
                    boolean isOnePhase)
Description copied from interface: CacheStore
Issues a prepare call with a set of modifications to be applied to the cache store

Specified by:
prepare in interface CacheStore
Overrides:
prepare in class AbstractDelegatingStore
Parameters:
list - modifications to be applied
tx - transaction identifier
isOnePhase - if true, there will not be a commit or rollback phase and changes should be flushed immediately

Google Analytics

Copyright © 2010 JBoss, a division of Red Hat. All Rights Reserved.