an accessory for CountedObject: builds a comparator for CountedObject<T> given a comparator for T; compares the underlying objects T themselves, *not* the associated counters
git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@91 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
parent
37101045af
commit
708ada3e99
|
|
@ -0,0 +1,41 @@
|
||||||
|
package org.broadinstitute.sting.indels;
|
||||||
|
|
||||||
|
/** Support class for counted objects. This comparator is an adapter: it is initialized with an arbitrary
|
||||||
|
* comparator for objects of type T and can be used to directly compare counted objects of type CountedObject<T>
|
||||||
|
* (the underlying Comparator<T> will be used to compare the "object" part of the counted objects, the counter values
|
||||||
|
* will be ignored). This comparator also provides additional, non-standard methods that allow direct
|
||||||
|
* comparison between a CountedObject<T> and "raw" object of type T (the same underlying Comparator<T> will be used,
|
||||||
|
* and the value of the counter in the counted object wil be ignored).
|
||||||
|
* @param <T>
|
||||||
|
*/
|
||||||
|
public class CountedObjectComparatorAdapter<T> implements java.util.Comparator<CountedObject<T>> {
|
||||||
|
|
||||||
|
private java.util.Comparator<T> mComp;
|
||||||
|
|
||||||
|
/** Initializes comparator adapter with a comparator for objects of trype T */
|
||||||
|
public CountedObjectComparatorAdapter(java.util.Comparator<T> adaptee) {
|
||||||
|
mComp = adaptee;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compare(CountedObject<T> o1, CountedObject<T> o2) {
|
||||||
|
return mComp.compare(o1.getObject(),o2.getObject());
|
||||||
|
}
|
||||||
|
|
||||||
|
public int compare(T o1, CountedObject<T> o2) {
|
||||||
|
return mComp.compare(o1,o2.getObject());
|
||||||
|
}
|
||||||
|
|
||||||
|
public int compare(CountedObject<T> o1, T o2) {
|
||||||
|
return mComp.compare(o1.getObject(),o2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if ( o instanceof CountedObjectComparatorAdapter) {
|
||||||
|
if ( ((CountedObjectComparatorAdapter) o).mComp.getClass() == mComp.getClass() ) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue