package fr.openwide.core.jpa.more.business.generic.model.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;
public enum GenericEntitySort implements ISort<SortField> {
SCORE {
@Override
public List<SortField> getSortFields(SortOrder sortOrder) {
return ImmutableList.of(SortField.FIELD_SCORE); // Order is irrelevant
}
@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();
}