in jobs-service/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/repository/impl/InMemoryJobRepository.java [120:142]
private static Comparator<JobDetails> createOrderByFieldComparator(SortTerm field) {
Comparator<JobDetails> comparator;
switch (field.getField()) {
case FIRE_TIME:
comparator = Comparator.comparingLong(jobDetails -> {
Date nextFireTime = jobDetails.getTrigger().hasNextFireTime();
return nextFireTime != null ? nextFireTime.getTime() : Long.MIN_VALUE;
});
break;
case CREATED:
comparator = Comparator.comparingLong(jobDetails -> {
ZonedDateTime created = jobDetails.getCreated();
return created != null ? created.toInstant().toEpochMilli() : Long.MIN_VALUE;
});
break;
case ID:
comparator = Comparator.comparing(JobDetails::getId);
break;
default:
throw new IllegalArgumentException("No comparator is defined for field: " + field.getField());
}
return field.isAsc() ? comparator : comparator.reversed();
}