}
@Override
public boolean replace(K key, V oldValue, V value, Metadata metadata) {
// TODO: This is temporary, as it gets refined, entire metadata object will be passed down the stack
TimeUnit lifespanUnit = metadata.lifespanUnit();
TimeUnit maxIdleUnit = metadata.maxIdleUnit();
long lifespan = metadata.lifespan();
long maxIdleTime = metadata.maxIdle();
EntryVersion version = metadata.version();
if (version == null) {
if (lifespanUnit != null && maxIdleUnit != null)