/*
* Utilities.java
*
* Created on July 17, 2006, 1:14 PM
*/
package eug.shared;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import java.io.Serializable;
import java.text.DecimalFormat;
import java.util.Arrays;
import java.util.Comparator;
/**
*
* @author Michael Myers
*/
public final class Utilities {
public static final DecimalFormat popFormatter = new DecimalFormat("##,###,##0.000");
private static final FileDateComparator SORT_BY_DATE = new FileDateComparator();
public static final EugFileFilter EUG_FILTER = new EugFileFilter();
private Utilities() { }
public static String formatPop(double pop) {
return popFormatter.format(pop);
}
public static String findNewestFile(File dir) {
File[] list = dir.listFiles(/*EUG_FILTER*/);
Arrays.sort(list, SORT_BY_DATE);
return list[0].getAbsolutePath();
}
public static String findNewestFile(File dir, FileFilter filter) {
File[] list = dir.listFiles(filter);
Arrays.sort(list, SORT_BY_DATE);
return list[0].getAbsolutePath();
}
public static String findNewestFile(File dir, FilenameFilter filter) {
File[] list = dir.listFiles(filter);
Arrays.sort(list, SORT_BY_DATE);
return list[0].getAbsolutePath();
}
// Implement Serializable so that any list that uses this comparator can be
// serialized.
private static final class FileDateComparator implements Comparator<File>, Serializable {
private static final long serialVersionUID = 1L;
public int compare(File f1, File f2) {
long f1mod = f1.lastModified();
long f2mod = f2.lastModified();
return (f1mod < f2mod ? 1 : (f1mod == f2mod ? 0 : -1));
}
}
private static final class EugFileFilter implements FileFilter {
public boolean accept(File pathname) {
return pathname.getName().endsWith(".eug") || pathname.getName().endsWith(".eu3");
}
}
}