// This software is released into the Public Domain. See copying.txt for details.
package org.openstreetmap.osmosis.core.store;
import java.util.Comparator;
/**
* Compares two Integers as unsigned values.
*
* @author Brett Henderson
*/
public class UnsignedIntegerComparator implements Comparator<Integer> {
/**
* {@inheritDoc}
*/
@Override
public int compare(Integer o1, Integer o2) {
long value1;
long value2;
long comparison;
// Convert the two integers to longs using an unsigned conversion and
// perform the comparison on those.
value1 = o1.intValue() & 0xFFFFFFFFL;
value2 = o2.intValue() & 0xFFFFFFFFL;
comparison = value1 - value2;
if (comparison == 0) {
return 0;
} else if (comparison > 0) {
return 1;
} else {
return -1;
}
}
}