// 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)
return replace(key, oldValue, value, lifespan, lifespanUnit, maxIdleTime, maxIdleUnit);
else if (lifespanUnit != null)
return replace(key, oldValue, value, lifespan, lifespanUnit);