package com.afollestad.silk.caching;
/**
* @author Aidan Follestad (afollestad)
*/
public class SilkCacheLimiter {
/**
* Initializes a new SilkCacheLimiter instance.
*
* @param sizeLimit The size limit of the cache (triggers the specified behavior).
* @param behavior The behavior of the cache when the size limit is reached.
*/
public SilkCacheLimiter(int sizeLimit, LimiterBehavior behavior) {
if (sizeLimit < 1) throw new IllegalArgumentException("The size limit cannot be less than 1.");
mSizeLimit = sizeLimit;
mBehavior = behavior;
}
public SilkCacheLimiter(String preference) {
String[] split = preference.split(":");
mSizeLimit = Integer.parseInt(split[0]);
mBehavior = LimiterBehavior.valueOf(Integer.parseInt(split[1]));
}
private final int mSizeLimit;
private final LimiterBehavior mBehavior;
public int getSizeLimit() {
return mSizeLimit;
}
public LimiterBehavior getBehavior() {
return mBehavior;
}
@Override
public String toString() {
return mSizeLimit + ":" + mBehavior.intValue();
}
}