package fr.openwide.core.jpa.more.business.search.query;
import java.util.List;
import java.util.Map;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import fr.openwide.core.jpa.more.business.sort.ISort;
import fr.openwide.core.jpa.more.business.sort.ISort.SortOrder;
public abstract class AbstractSearchQuery<T, S extends ISort<?>> implements ISearchQuery<T, S> /* NOT Serializable */ {
@PersistenceContext
protected EntityManager entityManager;
protected List<S> defaultSorts;
protected Map<S, SortOrder> sortMap;
@SafeVarargs
protected AbstractSearchQuery(S ... defaultSorts) {
this.defaultSorts = ImmutableList.copyOf(defaultSorts);
}
// Sort
@Override
public ISearchQuery<T, S> sort(Map<S, SortOrder> sortMap) {
this.sortMap = ImmutableMap.copyOf(sortMap);
return this;
}
}