{
List<DocIdSet> list = new ArrayList<DocIdSet>(_filters.size());
List<RandomAccessDocIdSet> randomAccessList = new ArrayList<RandomAccessDocIdSet>(_filters.size());
for (RandomAccessFilter f : _filters)
{
RandomAccessDocIdSet s = f.getRandomAccessDocIdSet(reader);
list.add(s);
randomAccessList.add(s);
}
final RandomAccessDocIdSet[] randomAccessDocIdSets = randomAccessList.toArray(new RandomAccessDocIdSet[randomAccessList.size()]);
final DocIdSet andDocIdSet = new AndDocIdSet(list);
return new RandomAccessDocIdSet()
{
@Override
public boolean get(int docId)
{
for(RandomAccessDocIdSet s : randomAccessDocIdSets)
{
if(!s.get(docId)) return false;
}
return true;
}
@Override