package pl.edu.icm.saos.api.search.judgments.parameters; import com.google.common.base.Objects; import pl.edu.icm.saos.search.config.model.JudgmentIndexField; import pl.edu.icm.saos.search.search.model.Sorting; import static pl.edu.icm.saos.search.config.model.JudgmentIndexField.DATABASE_ID; /** * Sort criteria. * @author pavtel */ public class Sort { private JudgmentIndexField sortingField = DATABASE_ID; private Sorting.Direction sortingDirection = Sorting.Direction.ASC; //------------------------ GETTERS -------------------------- public JudgmentIndexField getSortingField() { return sortingField; } public String getSortingFieldName(){ return sortingField.getFieldName(); } public Sorting.Direction getSortingDirection() { return sortingDirection; } //------------------------ SETTERS -------------------------- public void setSortingField(JudgmentIndexField sortingField) { if(sortingField != null){ this.sortingField = sortingField; } } public void setSortingDirection(Sorting.Direction sortingDirection) { if(sortingDirection != null){ this.sortingDirection = sortingDirection; } } //------------------------ HashCode & Equals -------------------------- @Override public int hashCode() { return Objects.hashCode(sortingField, sortingDirection); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } final Sort other = (Sort) obj; return Objects.equal(this.sortingField, other.sortingField) && Objects.equal(this.sortingDirection, other.sortingDirection); } //------------------------ toString -------------------------- @Override public String toString() { return Objects.toStringHelper(this) .add("sortingField", sortingField) .add("sortingDirection", sortingDirection) .toString(); } }