/** * Copyright (C) Intersect 2012. * * This module contains Proprietary Information of Intersect, * and should be treated as Confidential. */ package au.org.intersect.exsite9.domain.utils; import java.util.Comparator; import au.org.intersect.exsite9.domain.ResearchFile; /** * A Comparator for {@link ResearchFile}s. * Compares them by their name ignoring case alphabetically ascending or descending. */ public class ResearchFileNameComparator implements Comparator<ResearchFile> { protected final int factor; /** * @param ascending {@code true} to compare ascending. {@code false} to compare descending. */ public ResearchFileNameComparator(final boolean ascending) { this.factor = ascending ? 1 : -1; } @Override public int compare(final ResearchFile rf1, final ResearchFile rf2) { final String name1 = rf1.getFile().getName(); final String name2 = rf2.getFile().getName(); final int compareIgnoreCase = name1.compareToIgnoreCase(name2); if (compareIgnoreCase != 0) { return compareIgnoreCase * this.factor; } return 0; } }