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;
}
}