1 package org.oxerr.spring.cache.redis.scored.score.resolver.inherited; 2 3 import java.util.Optional; 4 5 import org.oxerr.spring.cache.redis.scored.score.resolver.ScoreResolver; 6 import org.oxerr.spring.cache.redis.scored.score.resolver.ScoreUtils; 7 import org.oxerr.spring.cache.redis.scored.score.resolver.inherited.inheritable.Versioned; 8 9 public class InheritedScoreResolver implements ScoreResolver { 10 11 private static final long serialVersionUID = 2021082001L; 12 13 @Override 14 public Optional<Double> resolveScore(Object value) { 15 final Optional<Double> score; 16 17 if (value instanceof Versioned) { 18 Object version = ((Versioned<?>) value).getVersion(); 19 score = Optional.ofNullable(ScoreUtils.extractScore(version)); 20 } else { 21 score = Optional.empty(); 22 } 23 24 return score; 25 } 26 27 }