searchContext.setScope( SearchScope.OBJECT );
cursors.add( partition.search( searchContext ) );
}
}
return new CursorList( cursors, searchContext );
}
else
{
// This is a SUBLEVEL search. We will do multiple searches and wrap
// a CursorList into the EntryFilteringCursor
List<EntryFilteringCursor> cursors = new ArrayList<EntryFilteringCursor>();
for ( Partition partition : partitions.values() )
{
Dn contextDn = partition.getSuffixDn();
HasEntryOperationContext hasEntryContext = new HasEntryOperationContext(
searchContext.getSession(), contextDn );
if ( partition.hasEntry( hasEntryContext ) )
{
searchContext.setDn( contextDn );
EntryFilteringCursor cursor = partition.search( searchContext );
cursors.add( cursor );
}
}
// don't feed the above Cursors' list to a BaseEntryFilteringCursor it is skipping the naming context entry of each partition
return new CursorList( cursors, searchContext );
}
}