package org.sakaiproject.delegatedaccess.util;
import java.util.Comparator;
import org.sakaiproject.delegatedaccess.model.SearchResult;
/**
*
* Compares user search results for sorting
*
* @author Bryan Holladay (holladay@longsight.com)
*
*/
public class SearchResultComparator implements Comparator<SearchResult>{
private int compareField = -1;
public SearchResultComparator(int compareField){
this.compareField = compareField;
}
public int compare(SearchResult o1, SearchResult o2) {
switch (compareField) {
case DelegatedAccessConstants.SEARCH_COMPARE_EMAIL:
if(o1.getEmail() == null && o2.getEmail() == null){
return 0;
}else if(o1.getEmail() == null){
return 1;
}else if(o2.getEmail() == null){
return -1;
}
return o1.getEmail().compareToIgnoreCase(o2.getEmail());
case DelegatedAccessConstants.SEARCH_COMPARE_SORT_NAME:
if(o1.getSortName() == null && o2.getSortName() == null){
return 0;
}else if(o1.getSortName() == null){
return 1;
}else if(o2.getSortName() == null){
return -1;
}
return o1.getSortName().compareToIgnoreCase(o2.getSortName());
case DelegatedAccessConstants.SEARCH_COMPARE_TYPE:
if(o1.getType() == null && o2.getType() == null){
return 0;
}else if(o1.getType() == null){
return 1;
}else if(o2.getType() == null){
return -1;
}
return o1.getType().compareToIgnoreCase(o2.getType());
case DelegatedAccessConstants.SEARCH_COMPARE_EID:
default:
if(o1.getEid() == null && o2.getEid() == null){
return 0;
}else if(o1.getEid() == null){
return 1;
}else if(o2.getEid() == null){
return -1;
}
return o1.getEid().compareToIgnoreCase(o2.getEid());
}
}
public int getCompareField() {
return compareField;
}
public void setCompareField(int compareField) {
this.compareField = compareField;
}
}