package com.leanengine.server.entity;
import com.google.appengine.api.datastore.Query;
import com.leanengine.server.LeanException;
public class QuerySort {
private String property;
private SortDirection direction;
public QuerySort(String property, SortDirection direction) {
this.property = property;
this.direction = direction;
}
public String getProperty() {
return property;
}
public SortDirection getDirection() {
return direction;
}
public enum SortDirection {
ASCENDING("asc", Query.SortDirection.ASCENDING),
DESCENDING("desc", Query.SortDirection.DESCENDING);
private String sortString;
private Query.SortDirection sortDirection;
SortDirection(String sortString, Query.SortDirection sortDirection) {
this.sortString = sortString;
this.sortDirection = sortDirection;
}
public static SortDirection create(String sortJson) throws LeanException {
if ("asc".equals(sortJson)) {
return SortDirection.ASCENDING;
} else if ("desc".equals(sortJson)) {
return SortDirection.DESCENDING;
}
throw new LeanException(LeanException.Error.UnsupportedQuerySortOperation, sortJson);
}
public Query.SortDirection getSortDirection() {
return sortDirection;
}
public String toJSON() {
return sortString;
}
}
}