package fr.openwide.core.showcase.core.business.user.search;
import java.util.List;
import org.apache.lucene.search.SortField;
import com.google.common.collect.ImmutableList;
import fr.openwide.core.jpa.business.generic.model.GenericEntity;
import fr.openwide.core.jpa.more.business.sort.ISort;
import fr.openwide.core.jpa.more.business.sort.SortUtils;
import fr.openwide.core.showcase.core.business.user.model.User;
public enum UserSort implements ISort<SortField> {
FULL_NAME {
@Override
public List<SortField> getSortFields(SortOrder sortOrder) {
return ImmutableList.of(
SortUtils.luceneSortField(this, sortOrder, SortField.Type.STRING, User.LAST_NAME_SORT_FIELD_NAME),
SortUtils.luceneSortField(this, sortOrder, SortField.Type.STRING, User.FIRST_NAME_SORT_FIELD_NAME)
);
}
@Override
public SortOrder getDefaultOrder() {
return SortOrder.ASC;
}
},
ID {
@Override
public List<SortField> getSortFields(SortOrder sortOrder) {
return ImmutableList.of(SortUtils.luceneSortField(this, sortOrder, SortField.Type.LONG, GenericEntity.ID_SORT));
}
@Override
public SortOrder getDefaultOrder() {
return SortOrder.DESC;
}
};
@Override
public abstract List<SortField> getSortFields(SortOrder sortOrder);
@Override
public abstract SortOrder getDefaultOrder();
}