added iterateDistinct to SimpleProjectable

This commit is contained in:
Timo Westkämper 2010-12-18 21:50:45 +00:00
parent d1712882d0
commit ea98ddc00c
5 changed files with 28 additions and 0 deletions

View File

@ -25,6 +25,13 @@ public interface SimpleProjectable<T> {
* @return
*/
CloseableIterator<T> iterate();
/**
* Get the projection as a typed closeable Iterator with distinct elements
*
* @return
*/
CloseableIterator<T> iterateDistinct();
/**
* Get the projection as a typed List

View File

@ -68,6 +68,11 @@ public class SimpleQueryAdapter<T> implements SimpleQuery<SimpleQueryAdapter<T>>
public CloseableIterator<T> iterate(){
return projectable.iterate(projection);
}
@Override
public CloseableIterator<T> iterateDistinct(){
return projectable.iterateDistinct(projection);
}
@Override
public List<T> list() {

View File

@ -94,6 +94,11 @@ public class SearchQuery<T> implements SimpleQuery<SearchQuery<T>>, SimpleProjec
public CloseableIterator<T> iterate(){
return new IteratorAdapter<T>(createQuery(false).iterate());
}
public CloseableIterator<T> iterateDistinct(){
return iterate();
}
@Override
public SearchQuery<T> limit(long limit) {

View File

@ -123,6 +123,11 @@ public class LuceneQuery implements SimpleQuery<LuceneQuery>,
}
}
@Override
public CloseableIterator<Document> iterateDistinct() {
return iterate();
}
@Override
public List<Document> list() {
return new IteratorAdapter<Document>(iterate()).asList();

View File

@ -90,6 +90,7 @@ public class MongodbQuery<K> implements SimpleQuery<MongodbQuery<K>>,
return queryMixin.set(param, value);
}
@Override
public CloseableIterator<K> iterate() {
final DBCursor cursor = createCursor();
return new CloseableIterator<K>() {
@ -114,6 +115,11 @@ public class MongodbQuery<K> implements SimpleQuery<MongodbQuery<K>>,
};
}
@Override
public CloseableIterator<K> iterateDistinct() {
return iterate();
}
@Override
public List<K> list() {
DBCursor cursor = createCursor();