package org.radargun.service;
import org.jboss.cache.Fqn;
import org.radargun.traits.BasicOperations;
/**
* @author Radim Vansa <rvansa@redhat.com>
*/
public class JBossCache2Operations implements BasicOperations {
protected final JBossCache2Service service;
public JBossCache2Operations(JBossCache2Service service) {
this.service = service;
}
@Override
public <K, V> BasicOperations.Cache<K, V> getCache(String cacheName) {
return new Cache<K, V>(service.getCache(cacheName));
}
protected class Cache<K, V> implements BasicOperations.Cache<K, V> {
protected final org.jboss.cache.Cache<K, V> cache;
protected final Fqn root;
public Cache(org.jboss.cache.Cache<K, V> cache) {
this.cache = cache;
this.root = cache.getRoot().getFqn();
}
@Override
public V get(K key) {
return cache.get(root, key);
}
@Override
public boolean containsKey(K key) {
return cache.get(root, key) != null;
}
@Override
public void put(K key, V value) {
cache.put(root, key, value);
}
@Override
public V getAndPut(K key, V value) {
return cache.put(root, key, value);
}
@Override
public boolean remove(K key) {
return cache.remove(root, key) != null;
}
@Override
public V getAndRemove(K key) {
return cache.remove(root, key);
}
@Override
public void clear() {
cache.clearData(root);
}
}
}