1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.start;
20
21 import java.io.File;
22 import java.nio.file.Path;
23 import java.text.CollationKey;
24 import java.text.Collator;
25 import java.util.Comparator;
26
27
28
29
30 public class NaturalSort
31 {
32 public static class Paths implements Comparator<Path>
33 {
34 private final Collator collator = Collator.getInstance();
35
36 @Override
37 public int compare(Path o1, Path o2)
38 {
39 CollationKey key1 = collator.getCollationKey(o1.toString());
40 CollationKey key2 = collator.getCollationKey(o2.toString());
41 return key1.compareTo(key2);
42 }
43 }
44
45 public static class Files implements Comparator<File>
46 {
47 private final Collator collator = Collator.getInstance();
48
49 @Override
50 public int compare(File o1, File o2)
51 {
52 CollationKey key1 = collator.getCollationKey(o1.getAbsolutePath());
53 CollationKey key2 = collator.getCollationKey(o2.getAbsolutePath());
54 return key1.compareTo(key2);
55 }
56 }
57
58 public static class Strings implements Comparator<String>
59 {
60 private final Collator collator = Collator.getInstance();
61
62 @Override
63 public int compare(String o1, String o2)
64 {
65 CollationKey key1 = collator.getCollationKey(o1);
66 CollationKey key2 = collator.getCollationKey(o2);
67 return key1.compareTo(key2);
68 }
69 }
70 }