if (o1 instanceof RepositoryRoot && o2 instanceof RepositoryRoot) {
RepositoryRoot rr1 = (RepositoryRoot) o1;
RepositoryRoot rr2 = (RepositoryRoot) o2;
// use repository location strings to compare RepositoryRoots
ICVSRepositoryLocation rl1 = rr1.getRoot();
ICVSRepositoryLocation rl2 = rr2.getRoot();
switch (Math.abs(order)) {
case ORDER_HOST:
if (rl1.getHost().compareTo(rl2.getHost()) != 0)
return (order / Math.abs(order))
* rl1.getHost().compareTo(rl2.getHost());
case ORDER_LOCATION:
if (rl1.getLocation(false).compareTo(rl2.getLocation(false)) != 0)
return (order / Math.abs(order))
* (rl1.getLocation(false).compareTo(rl2
.getLocation(false)));
// default and any other
default:
// to jest wywolanie super tylko dla reposow, z przodu ma ten myk z odwracaniem kolejnosci
return (order / Math.abs(order)) * super.compare(viewer, o1, o2);
}
}
// tutaj zostaje po staremu -- ten super jest domyslny dla wszystkich typow elementow
return super.compare(viewer, o1, o2);