CacheDtoComparator.java

package sk.iway.iwcm.components.memory_cleanup.cache_objects;

import org.springframework.stereotype.Component;

import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;

@Component
public class CacheDtoComparator {

    private Map<String, Comparator<CacheDto>> sortingOptions = new HashMap<>();

    public CacheDtoComparator() {
        //Comparator<Date> nullSafeDateComparator = Comparator.nullsLast(Date::compareTo);
        this.sortingOptions.put("id", Comparator.comparing(CacheDto::getId));
        this.sortingOptions.put("name", Comparator.comparing(CacheDto::getName));
        this.sortingOptions.put("expirationDate", Comparator.comparing(CacheDto::getExpirationDate));
        this.sortingOptions.put("size", Comparator.comparing(CacheDto::getSize));
    }

    Comparator<CacheDto> getSortingComparator(String key) {
        return sortingOptions.get(key);
    }

}