package rocks.inspectit.shared.cs.communication.comparator;
import java.util.Comparator;
import rocks.inspectit.shared.all.cmr.service.ICachedDataService;
import rocks.inspectit.shared.all.communication.data.AggregatedExceptionSensorData;
/**
* Comparators for {@link AggregatedExceptionSensorData}.
*
* @author Ivan Senic
*
*/
public enum AggregatedExceptionSensorDataComparatorEnum implements IDataComparator<AggregatedExceptionSensorData>, Comparator<AggregatedExceptionSensorData> {
/**
* Sort by amount of created exceptions.
*/
CREATED,
/**
* Sort by amount of re-thrown exceptions.
*/
RETHROWN,
/**
* Sort by amount of handled exceptions.
*/
HANDLED;
/**
* {@inheritDoc}
*/
@Override
public int compare(AggregatedExceptionSensorData o1, AggregatedExceptionSensorData o2, ICachedDataService cachedDataService) {
return compare(o1, o2);
}
/**
* {@inheritDoc}
*/
@Override
public int compare(AggregatedExceptionSensorData o1, AggregatedExceptionSensorData o2) {
switch (this) {
case CREATED:
return Long.valueOf(o1.getCreated()).compareTo(Long.valueOf(o2.getCreated()));
case RETHROWN:
return Long.valueOf(o1.getPassed()).compareTo(Long.valueOf(o2.getPassed()));
case HANDLED:
return Long.valueOf(o1.getHandled()).compareTo(Long.valueOf(o2.getHandled()));
default:
return 0;
}
}
}