package org.infinispan.query.dsl.embedded.impl;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Map;
import java.util.NoSuchElementException;
import org.infinispan.AdvancedCache;
import org.infinispan.commons.util.CloseableIterator;
import org.infinispan.objectfilter.ObjectFilter;
import org.infinispan.query.dsl.QueryFactory;
/**
* A query that does not return any results because the query filter is a boolean contradiction.
*
* @author anistor@redhat.com
* @since 8.0
*/
final class EmptyResultQuery extends BaseEmbeddedQuery {
EmptyResultQuery(QueryFactory queryFactory, AdvancedCache<?, ?> cache, String queryString, Map<String, Object> namedParameters,
long startOffset, int maxResults) {
super(queryFactory, cache, queryString, namedParameters, null, startOffset, maxResults);
}
@Override
protected Comparator<Comparable[]> getComparator() {
return null;
}
@Override
protected CloseableIterator<ObjectFilter.FilterResult> getIterator() {
return new CloseableIterator<ObjectFilter.FilterResult>() {
@Override
public void close() {
}
@Override
public boolean hasNext() {
return false;
}
@Override
public ObjectFilter.FilterResult next() {
throw new NoSuchElementException();
}
};
}
@Override
public String toString() {
return "EmptyResultQuery{" +
"queryString=" + queryString +
", namedParameters=" + namedParameters +
", projection=" + Arrays.toString(projection) +
", startOffset=" + startOffset +
", maxResults=" + maxResults +
'}';
}
}