filebot/source/net/sourceforge/filebot/cli/StrictMetric.java

34 lines
861 B
Java

package net.sourceforge.filebot.cli;
import static java.lang.Math.*;
import net.sourceforge.filebot.similarity.SimilarityMetric;
import net.sourceforge.filebot.ui.rename.MatchSimilarityMetric;
public enum StrictMetric implements SimilarityMetric {
EpisodeIdentifier(MatchSimilarityMetric.StrictEpisodeIdentifier, 1), // only allow 0 or 1
Title(MatchSimilarityMetric.SubstringFields, 2), // allow 0 or .5 or 1
Name(MatchSimilarityMetric.Name, 2); // allow 0 or .5 or 1
// inner metric
private final SimilarityMetric metric;
private final float floorFactor;
private StrictMetric(SimilarityMetric metric, float floorFactor) {
this.metric = metric;
this.floorFactor = floorFactor;
}
@Override
public float getSimilarity(Object o1, Object o2) {
return (float) (floor(metric.getSimilarity(o1, o2) * floorFactor) / floorFactor);
}
}