/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.master.user;
import java.util.Comparator;
import org.apache.commons.lang.ObjectUtils;
/**
* Available sort orders for the user search.
*/
public enum UserSearchSortOrder implements Comparator<ManageableUser> {
// this design is simple and perhaps not ideal, but it is effective for most use cases at the moment
/**
* Sort by object id ascending.
*/
OBJECT_ID_ASC {
@Override
public int compare(ManageableUser obj1, ManageableUser obj2) {
return obj1.getObjectId().compareTo(obj2.getObjectId());
}
},
/**
* Sort by object id ascending.
*/
OBJECT_ID_DESC {
@Override
public int compare(ManageableUser obj1, ManageableUser obj2) {
return obj2.getObjectId().compareTo(obj1.getObjectId());
}
},
/**
* Sort by name ascending.
*/
NAME_ASC {
@Override
public int compare(ManageableUser obj1, ManageableUser obj2) {
return ObjectUtils.compare(obj1.getUserName(), obj2.getUserName(), true);
}
},
/**
* Sort by name descending.
*/
NAME_DESC {
@Override
public int compare(ManageableUser obj1, ManageableUser obj2) {
return ObjectUtils.compare(obj2.getUserName(), obj1.getUserName(), true);
}
};
}