]> gitweb.fperrin.net Git - GpsPrune.git/blob - tim/prune/load/MediaSorter.java
e67a32bfd2a45ca0b728ce1b1a8f35556b6c2ef2
[GpsPrune.git] / tim / prune / load / MediaSorter.java
1 package tim.prune.load;
2
3 import java.io.File;
4 import java.util.Comparator;
5 import tim.prune.data.MediaObject;
6
7 /**
8  * Class to sort photos, audios by name
9  */
10 public class MediaSorter implements Comparator<MediaObject>
11 {
12         /**
13          * Compare two media objects
14          * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
15          */
16         public int compare(MediaObject o1, MediaObject o2)
17         {
18                 int nameComp = o1.getName().compareTo(o2.getName());
19                 if (nameComp != 0) {
20                         // names different
21                         return nameComp;
22                 }
23                 File file1 = o1.getFile();
24                 File file2 = o2.getFile();
25                 if (file1 != null && file2 != null)
26                 {
27                         // names same, maybe in different directories
28                         nameComp = file1.getAbsolutePath().compareTo(file2.getAbsolutePath());
29                 }
30                 else if (o1.getByteData() != null && o2.getByteData() != null) {
31                         // compare data lengths instead
32                         nameComp = o1.getByteData().length - o2.getByteData().length;
33                 }
34                 else {
35                         // one's a file, one's from data
36                         nameComp = 1;
37                 }
38                 return nameComp;
39         }
40 }