1
0
mirror of https://github.com/mitb-archive/filebot synced 2024-08-13 17:03:45 -04:00
filebot/source/net/filebot/similarity/SimilarityComparator.java

45 lines
828 B
Java
Raw Normal View History

package net.sourceforge.filebot.similarity;
import java.util.Comparator;
public class SimilarityComparator implements Comparator<Object> {
2012-02-22 03:30:50 -05:00
protected SimilarityMetric metric;
protected Object[] paragon;
2012-02-22 03:30:50 -05:00
public SimilarityComparator(SimilarityMetric metric, Object[] paragon) {
this.metric = metric;
this.paragon = paragon;
}
2013-01-27 11:41:33 -05:00
public SimilarityComparator(Object... paragon) {
this(new NameSimilarityMetric(), paragon);
}
@Override
public int compare(Object o1, Object o2) {
2012-02-22 03:30:50 -05:00
float f1 = getMaxSimilarity(o1);
float f2 = getMaxSimilarity(o2);
if (f1 == f2)
return 0;
return f1 > f2 ? -1 : 1;
}
2012-02-22 03:30:50 -05:00
public float getMaxSimilarity(Object obj) {
float m = 0;
for (Object it : paragon) {
m += (it != null) ? metric.getSimilarity(obj, it) : 0;
}
return m / paragon.length;
}
}