package org.ovirt.engine.ui.uicommonweb.comparators; import java.util.Comparator; import org.ovirt.engine.core.common.businessentities.Quota; import org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator; import org.ovirt.engine.core.compat.Guid; public class QuotaComparator { private static final LexoNumericComparator lexoNumeric = new LexoNumericComparator(); /** * Comparator for the description field in {@code Quota}. */ public static final Comparator<Quota> DESCRIPTION = Comparator.comparing(Quota::getDescription, lexoNumeric); /** * Comparator for the quota name field in {@code Quota}. */ public static final Comparator<Quota> NAME = Comparator.comparing(Quota::getName, lexoNumeric); /** * Comparator for the description field in {@code Quota}. */ public static final Comparator<Quota> DATA_CENTER = Comparator.comparing(Quota::getStoragePoolName, lexoNumeric); /** * Comparator adapter. Quota with topId will be the first in sorted list. */ public static Comparator<Quota> withTopId(final Guid topId, final Comparator<Quota> defaultComparator) { return Comparator.comparing((Quota q) -> !q.getId().equals(topId)).thenComparing(defaultComparator); } }