package nl.minicom.gitolite.manager.models;
import java.util.Comparator;
/**
* This interface represents either a gitolite {@link User} or {@link Group}.
*
* @author Michael de Jong <<a href="mailto:michaelj@minicom.nl">michaelj@minicom.nl</a>>
*/
public interface Identifiable {
Comparator<Identifiable> SORT_BY_TYPE_AND_NAME = new Comparator<Identifiable>() {
@Override
public int compare(Identifiable o1, Identifiable o2) {
boolean o1IsGroup = o1 instanceof Group;
boolean o2IsGroup = o2 instanceof Group;
if (o1IsGroup == o2IsGroup) {
return o1.getName().compareTo(o2.getName());
}
else if (o1IsGroup) {
return -1;
}
return 1;
}
};
/**
* @return
* The name of the {@link Identifiable}.
*/
String getName();
}