// This software is released into the Public Domain. See copying.txt for details.
package org.openstreetmap.osmosis.apidb.v0_6.impl;
import java.util.Comparator;
import org.openstreetmap.osmosis.core.domain.v0_6.Entity;
/**
* A comparator for sorting entity history objects by entity id then entity version.
*
* @param <T>
* The type of entity being sorted.
*/
public class EntityHistoryComparator<T extends Entity> implements Comparator<EntityHistory<T>> {
/**
* {@inheritDoc}
*/
@Override
public int compare(EntityHistory<T> o1, EntityHistory<T> o2) {
long idDelta;
int versionDelta;
idDelta = o1.getEntity().getId() - o2.getEntity().getId();
if (idDelta < 0) {
return -1;
} else if (idDelta > 0) {
return 1;
}
versionDelta = o1.getEntity().getVersion() - o2.getEntity().getVersion();
if (versionDelta < 0) {
return -1;
} else if (versionDelta > 0) {
return 1;
}
return 0;
}
}