public AndPattern(int patternKind, int matchRule) {
super(patternKind, matchRule);
}
public void findIndexMatches(Index index, IndexQueryRequestor requestor, SearchParticipant participant, IJavaSearchScope scope, IProgressMonitor progressMonitor) throws IOException {
if (progressMonitor != null && progressMonitor.isCanceled()) throw new OperationCanceledException();
this.resetQuery();
SimpleSet intersectedNames = null;
try {
index.startQuery();
do {
SearchPattern pattern = ((InternalSearchPattern) this).currentPattern();
EntryResult[] entries = ((InternalSearchPattern)pattern).queryIn(index);
if (entries == null) return;
SearchPattern decodedResult = pattern.getBlankPattern();
SimpleSet newIntersectedNames = new SimpleSet(3);
for (int i = 0, l = entries.length; i < l; i++) {
if (progressMonitor != null && progressMonitor.isCanceled()) throw new OperationCanceledException();
EntryResult entry = entries[i];
decodedResult.decodeIndexKey(entry.getWord());
if (pattern.matchesDecodedKey(decodedResult)) {
String[] names = entry.getDocumentNames(index);