/*
* Concept profile generation tool suite
* Copyright (C) 2015 Biosemantics Group, Erasmus University Medical Center,
* Rotterdam, The Netherlands
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
*/
package org.erasmusmc.collections;
import java.io.File;
import java.io.Serializable;
import java.util.Comparator;
public class ComparatorFactory {
public static Comparator<Integer> getAscendingIntegerComparator() {
return new IntegerAscendingComparator();
}
public static Comparator<Integer> getDescendingIntegerComparator() {
return new IntegerDescendingComparator();
}
public static Comparator<Double> getAscendingDoubleComparator() {
return new DoubleAscendingComparator();
}
public static Comparator<Double> getDescendingDoubleComparator() {
return new DoubleDescendingComparator();
}
public static Comparator<String> getDescendingStringComparator() {
return new StringDescendingComparator();
}
public static Comparator<String> getAscendingStringComparator() {
return new StringAscendingComparator();
}
public static Comparator<File> getAscendingFileComparator() {
return new FileAscendingComparator();
}
public static class IntegerAscendingComparator implements Comparator<Integer>, Serializable {
private static final long serialVersionUID = -476978425831389381L;
public int compare(Integer arg0, Integer arg1) {
if (arg0 > arg1)
return 1;
if (arg0 < arg1)
return -1;
return 0;
}
}
public static class LongAscendingComparator implements Comparator<Long>, Serializable {
private static final long serialVersionUID = -476978425831389381L;
public int compare(Long arg0, Long arg1) {
if (arg0 > arg1)
return 1;
if (arg0 < arg1)
return -1;
return 0;
}
}
public static class DoubleAscendingComparator implements Comparator<Double>, Serializable {
private static final long serialVersionUID = -476978425831389381L;
public int compare(Double arg0, Double arg1) {
if (arg0 > arg1)
return 1;
if (arg0 < arg1)
return -1;
return 0;
}
}
public static class DoubleDescendingComparator implements Comparator<Double>, Serializable {
private static final long serialVersionUID = -476978425831389381L;
public int compare(Double arg0, Double arg1) {
if (arg0 > arg1)
return -1;
if (arg0 < arg1)
return 1;
return 0;
}
}
public static class IntegerDescendingComparator implements Comparator<Integer>, Serializable {
private static final long serialVersionUID = -476978425831389381L;
public int compare(Integer arg0, Integer arg1) {
if (arg0 > arg1)
return -1;
if (arg0 < arg1)
return 1;
return 0;
}
}
public static class StringDescendingComparator implements Comparator<String>, Serializable {
private static final long serialVersionUID = 4502103115822498558L;
public int compare(String arg0, String arg1) {
return (arg1.compareTo(arg0));
}
}
public static class StringAscendingComparator implements Comparator<String>, Serializable {
private static final long serialVersionUID = 4502103115822498558L;
public int compare(String arg0, String arg1) {
return (arg0.compareTo(arg1));
}
}
public static class FileAscendingComparator implements Comparator<File>, Serializable {
private static final long serialVersionUID = 4502103115822498558L;
public int compare(File arg0, File arg1) {
return (arg0.getAbsolutePath().compareTo(arg1.getAbsolutePath()));
}
}
}