[IO] Add FileUtils.getLastModifiedTimeComparator
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/io/FileUtils.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/io/FileUtils.java
index f652cfa..922bcee 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/io/FileUtils.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/io/FileUtils.java
@@ -22,6 +22,8 @@
import java.nio.file.NotDirectoryException;
import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes;
+import java.nio.file.attribute.FileTime;
+import java.util.Comparator;
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.lang.Nullable;
@@ -146,6 +148,35 @@
}
+ private static final Comparator<Path> LAST_MODIFIED_TIME_COMPARATOR= new Comparator<>() {
+ @Override
+ public int compare(final Path o1, final Path o2) {
+ FileTime time1= null;
+ FileTime time2= null;
+ try {
+ time1= Files.getLastModifiedTime(o1);
+ }
+ catch (final IOException e) {}
+ try {
+ time2= Files.getLastModifiedTime(o2);
+ }
+ catch (final IOException e) {}
+
+ if (time1 == null) {
+ return (time2 == null) ? 0 : 1;
+ }
+ if (time2 == null) {
+ return -1;
+ }
+ return time1.compareTo(time2);
+ }
+ };
+
+ public static final Comparator<Path> getLastModifiedTimeComparator() {
+ return LAST_MODIFIED_TIME_COMPARATOR;
+ }
+
+
private FileUtils() {
}