File: MediaSorter.java

package info (click to toggle)
gpsprune 17-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 3,984 kB
  • ctags: 5,218
  • sloc: java: 39,403; sh: 25; makefile: 17; python: 15
file content (40 lines) | stat: -rw-r--r-- 1,002 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package tim.prune.load;

import java.io.File;
import java.util.Comparator;
import tim.prune.data.MediaObject;

/**
 * Class to sort photos, audios by name
 */
public class MediaSorter implements Comparator<MediaObject>
{
	/**
	 * Compare two media objects
	 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
	 */
	public int compare(MediaObject o1, MediaObject o2)
	{
		int nameComp = o1.getName().compareTo(o2.getName());
		if (nameComp != 0) {
			// names different
			return nameComp;
		}
		File file1 = o1.getFile();
		File file2 = o2.getFile();
		if (file1 != null && file2 != null)
		{
			// names same, maybe in different directories
			nameComp = file1.getAbsolutePath().compareTo(file2.getAbsolutePath());
		}
		else if (o1.getByteData() != null && o2.getByteData() != null) {
			// compare data lengths instead
			nameComp = o1.getByteData().length - o2.getByteData().length;
		}
		else {
			// one's a file, one's from data
			nameComp = 1;
		}
		return nameComp;
	}
}