/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.csw.feature.sort; import java.util.Comparator; import java.util.List; /** * A composite comparator that applies the provided comparators as a hierarchical list, the first * comparator that returns a non zero value "wins" * * @author Andrea Aime - GeoSolutions * */ class CompositeComparator<T> implements Comparator<T> { List<Comparator<T>> comparators; public CompositeComparator(List<Comparator<T>> comparators) { this.comparators = comparators; } public int compare(T f1, T f2) { for (Comparator<T> comp : comparators) { int result = comp.compare(f1, f2); if (result != 0) { return result; } } return 0; } }