/*
* Created on Mar 11, 2005
*
*/
package org.mindswap.swoop.utils.ui;
import java.util.Comparator;
import org.mindswap.swoop.SwoopModel;
import org.mindswap.swoop.change.SwoopChange;
import org.mindswap.swoop.change.TreeTableNode;
/**
* @author Aditya
*
*/
public class ChangeComparator implements Comparator {
SwoopModel swoopModel;
public static ChangeComparator INSTANCE = new ChangeComparator();
public int compare(Object o1, Object o2) {
if (o1 instanceof SwoopChange && o2 instanceof SwoopChange) {
SwoopChange change1 = (SwoopChange) o1;
SwoopChange change2 = (SwoopChange) o2;
String time1 = change1.getTimeStamp();
String time2 = change2.getTimeStamp();
if (time1.equals(time2)) {
if (change1.isCheckpointRelated()) return 1;
if (change2.isCheckpointRelated()) return -1;
return -1;
}
else return time1.compareTo(time2);
}
else if (o1 instanceof TreeTableNode && o2 instanceof TreeTableNode) {
TreeTableNode node1 = (TreeTableNode) o1;
TreeTableNode node2 = (TreeTableNode) o2;
SwoopChange change1 = node1.swoopChange;
SwoopChange change2 = node2.swoopChange;
String time1 = change1.getTimeStamp();
String time2 = change2.getTimeStamp();
if (time1.equals(time2)) {
if (change1.isCheckpointRelated()) return 1;
if (change2.isCheckpointRelated()) return -1;
return -1;
}
else return time1.compareTo(time2);
}
return -1;
}
}