} else {
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