com.maxifier.mxcache.impl.caches.storage.elementlocked.StorageDoubleLongCacheImpl Maven / Gradle / Ivy
/*
* Copyright (c) 2008-2014 Maxifier Ltd. All Rights Reserved.
*/
package com.maxifier.mxcache.impl.caches.storage.elementlocked;
import com.maxifier.mxcache.impl.MutableStatistics;
import com.maxifier.mxcache.impl.caches.storage.StorageHolder;
import com.maxifier.mxcache.impl.caches.abs.elementlocked.*;
import com.maxifier.mxcache.caches.*;
import com.maxifier.mxcache.storage.elementlocked.*;
import com.maxifier.mxcache.interfaces.Statistics;
import com.maxifier.mxcache.interfaces.StatisticsHolder;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.concurrent.locks.Lock;
/**
* THIS IS GENERATED CLASS! DON'T EDIT IT MANUALLY!
*
* GENERATED FROM StorageP2PCache.template
*
* @author Andrey Yakoushin ([email protected])
* @author Alexander Kochurov ([email protected])
*/
public class StorageDoubleLongCacheImpl extends AbstractDoubleLongCache implements StorageHolder {
private DoubleObjectElementLockedStorage storage;
public StorageDoubleLongCacheImpl(Object owner, DoubleLongCalculatable calculatable, @Nonnull MutableStatistics statistics) {
super(owner, calculatable, statistics);
}
@Override
public void setStorage(@Nonnull DoubleObjectElementLockedStorage storage) {
if (this.storage != null) {
throw new UnsupportedOperationException("Storage already set");
}
this.storage = storage;
}
@Override
public Object load(double key) {
return storage.load(key);
}
@Override
public void save(double key, Object value) {
storage.save(key, value);
}
@Override
public void lock(double key) {
storage.lock(key);
}
@Override
public void unlock(double key) {
storage.unlock(key);
}
@Override
public Lock getLock() {
return storage.getLock();
}
@Override
public void clear() {
storage.clear();
}
@Override
public int size() {
return storage.size();
}
@Nullable
@Override
public Statistics getStatistics() {
if (storage instanceof StatisticsHolder) {
return ((StatisticsHolder)storage).getStatistics();
}
return super.getStatistics();
}
}