private static Comparator createOrderByFieldComparator()

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();
    }