package io.ebeaninternal.server.el;

import java.util.Comparator;

Comparator based on multiple ordered comparators.

eg. "name, orderDate desc, id"

/** * Comparator based on multiple ordered comparators. * <p> * eg. "name, orderDate desc, id" * </p> */
public final class ElComparatorCompound<T> implements Comparator<T>, ElComparator<T> { private static final long serialVersionUID = -1523163475050929750L; private final ElComparator<T>[] array; public ElComparatorCompound(ElComparator<T>[] array) { this.array = array; } @Override public int compare(T o1, T o2) { for (ElComparator<T> anArray : array) { int ret = anArray.compare(o1, o2); if (ret != 0) { return ret; } } return 0; } @Override public int compareValue(Object value, T o2) { for (ElComparator<T> anArray : array) { int ret = anArray.compareValue(value, o2); if (ret != 0) { return ret; } } return 0; } }