### Eclipse Workspace Patch 1.0 #P org.eclipse.pde.ui Index: src/org/eclipse/pde/internal/ui/search/ISearchResultCollector.java =================================================================== RCS file: src/org/eclipse/pde/internal/ui/search/ISearchResultCollector.java diff -N src/org/eclipse/pde/internal/ui/search/ISearchResultCollector.java --- src/org/eclipse/pde/internal/ui/search/ISearchResultCollector.java 16 Jan 2008 17:08:16 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,15 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.pde.internal.ui.search; - -public interface ISearchResultCollector { - void accept(Object match); -} Index: src/org/eclipse/pde/internal/ui/search/PluginSearchQuery.java =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/PluginSearchQuery.java,v retrieving revision 1.5 diff -u -r1.5 PluginSearchQuery.java --- src/org/eclipse/pde/internal/ui/search/PluginSearchQuery.java 16 Jan 2008 17:08:16 -0000 1.5 +++ src/org/eclipse/pde/internal/ui/search/PluginSearchQuery.java 8 Jan 2009 21:46:36 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2006 IBM Corporation and others. + * Copyright (c) 2005, 2009 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -12,7 +12,7 @@ import org.eclipse.core.runtime.*; import org.eclipse.pde.core.ISourceObject; -import org.eclipse.pde.internal.core.search.PluginSearchInput; +import org.eclipse.pde.internal.core.search.*; import org.eclipse.search.ui.ISearchQuery; import org.eclipse.search.ui.ISearchResult; import org.eclipse.search.ui.text.AbstractTextSearchResult; Index: src/org/eclipse/pde/internal/ui/search/PluginSearchOperation.java =================================================================== RCS file: src/org/eclipse/pde/internal/ui/search/PluginSearchOperation.java diff -N src/org/eclipse/pde/internal/ui/search/PluginSearchOperation.java --- src/org/eclipse/pde/internal/ui/search/PluginSearchOperation.java 16 Jan 2008 17:08:15 -0000 1.7 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,118 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.pde.internal.ui.search; - -import java.util.ArrayList; -import java.util.regex.Pattern; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.pde.core.plugin.*; -import org.eclipse.pde.internal.core.search.PluginSearchInput; -import org.eclipse.pde.internal.core.util.PatternConstructor; - -public class PluginSearchOperation { - protected PluginSearchInput fInput; - private ISearchResultCollector fCollector; - private Pattern fPattern; - - public PluginSearchOperation(PluginSearchInput input, ISearchResultCollector collector) { - this.fInput = input; - this.fCollector = collector; - this.fPattern = PatternConstructor.createPattern(input.getSearchString(), input.isCaseSensitive()); - } - - public void execute(IProgressMonitor monitor) { - IPluginModelBase[] entries = fInput.getSearchScope().getMatchingModels(); - monitor.beginTask("", entries.length); //$NON-NLS-1$ - - try { - for (int i = 0; i < entries.length; i++) { - IPluginModelBase candidate = entries[i]; - visit(candidate); - monitor.worked(1); - } - } finally { - monitor.done(); - } - } - - private void visit(IPluginModelBase model) { - ArrayList matches = findMatch(model); - for (int i = 0; i < matches.size(); i++) { - fCollector.accept(matches.get(i)); - } - } - - private ArrayList findMatch(IPluginModelBase model) { - ArrayList result = new ArrayList(); - int searchLimit = fInput.getSearchLimit(); - switch (fInput.getSearchElement()) { - case PluginSearchInput.ELEMENT_PLUGIN : - if (searchLimit != PluginSearchInput.LIMIT_REFERENCES) - findPluginDeclaration(model, result); - if (searchLimit != PluginSearchInput.LIMIT_DECLARATIONS) - findPluginReferences(model, result); - break; - case PluginSearchInput.ELEMENT_FRAGMENT : - findFragmentDeclaration(model, result); - break; - case PluginSearchInput.ELEMENT_EXTENSION_POINT : - if (searchLimit != PluginSearchInput.LIMIT_REFERENCES) - findExtensionPointDeclarations(model, result); - if (searchLimit != PluginSearchInput.LIMIT_DECLARATIONS) - findExtensionPointReferences(model, result); - break; - } - return result; - } - - private void findFragmentDeclaration(IPluginModelBase model, ArrayList result) { - IPluginBase pluginBase = model.getPluginBase(); - if (pluginBase instanceof IFragment && fPattern.matcher(pluginBase.getId()).matches()) { - result.add(pluginBase); - } - } - - private void findPluginDeclaration(IPluginModelBase model, ArrayList result) { - IPluginBase pluginBase = model.getPluginBase(); - if (pluginBase instanceof IPlugin && fPattern.matcher(pluginBase.getId()).matches()) - result.add(pluginBase); - } - - private void findPluginReferences(IPluginModelBase model, ArrayList result) { - IPluginBase pluginBase = model.getPluginBase(); - if (pluginBase instanceof IFragment) { - if (fPattern.matcher(((IFragment) pluginBase).getPluginId()).matches()) - result.add(pluginBase); - } - IPluginImport[] imports = pluginBase.getImports(); - for (int i = 0; i < imports.length; i++) { - if (fPattern.matcher(imports[i].getId()).matches()) - result.add(imports[i]); - } - } - - private void findExtensionPointDeclarations(IPluginModelBase model, ArrayList result) { - IPluginExtensionPoint[] extensionPoints = model.getPluginBase().getExtensionPoints(); - for (int i = 0; i < extensionPoints.length; i++) { - if (fPattern.matcher(extensionPoints[i].getFullId()).matches()) - result.add(extensionPoints[i]); - } - } - - private void findExtensionPointReferences(IPluginModelBase model, ArrayList result) { - IPluginExtension[] extensions = model.getPluginBase().getExtensions(); - for (int i = 0; i < extensions.length; i++) { - if (fPattern.matcher(extensions[i].getPoint()).matches()) - result.add(extensions[i]); - } - } - -} #P org.eclipse.pde.core Index: src/org/eclipse/pde/internal/core/search/PluginSearchOperation.java =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/search/PluginSearchOperation.java,v retrieving revision 1.17 diff -u -r1.17 PluginSearchOperation.java --- src/org/eclipse/pde/internal/core/search/PluginSearchOperation.java 2 Jan 2008 15:56:17 -0000 1.17 +++ src/org/eclipse/pde/internal/core/search/PluginSearchOperation.java 8 Jan 2009 21:46:38 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. + * Copyright (c) 2000, 2009 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -12,34 +12,23 @@ import java.util.ArrayList; import java.util.regex.Pattern; - import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.pde.core.plugin.IFragment; -import org.eclipse.pde.core.plugin.IPlugin; -import org.eclipse.pde.core.plugin.IPluginBase; -import org.eclipse.pde.core.plugin.IPluginExtension; -import org.eclipse.pde.core.plugin.IPluginExtensionPoint; -import org.eclipse.pde.core.plugin.IPluginImport; -import org.eclipse.pde.core.plugin.IPluginModelBase; -import org.eclipse.pde.core.plugin.IPluginObject; +import org.eclipse.pde.core.plugin.*; import org.eclipse.pde.internal.core.util.PatternConstructor; public class PluginSearchOperation { protected PluginSearchInput fInput; - private IPluginSearchResultCollector fCollector; + private ISearchResultCollector fCollector; private Pattern fPattern; - public PluginSearchOperation(PluginSearchInput input, IPluginSearchResultCollector collector) { + public PluginSearchOperation(PluginSearchInput input, ISearchResultCollector collector) { this.fInput = input; this.fCollector = collector; - collector.setOperation(this); this.fPattern = PatternConstructor.createPattern(input.getSearchString(), input.isCaseSensitive()); } public void execute(IProgressMonitor monitor) { IPluginModelBase[] entries = fInput.getSearchScope().getMatchingModels(); - fCollector.searchStarted(); - fCollector.setProgressMonitor(monitor); monitor.beginTask("", entries.length); //$NON-NLS-1$ try { @@ -50,14 +39,13 @@ } } finally { monitor.done(); - fCollector.done(); } } private void visit(IPluginModelBase model) { ArrayList matches = findMatch(model); for (int i = 0; i < matches.size(); i++) { - fCollector.accept((IPluginObject) matches.get(i)); + fCollector.accept(matches.get(i)); } } Index: src/org/eclipse/pde/internal/core/search/IPluginSearchResultCollector.java =================================================================== RCS file: src/org/eclipse/pde/internal/core/search/IPluginSearchResultCollector.java diff -N src/org/eclipse/pde/internal/core/search/IPluginSearchResultCollector.java --- src/org/eclipse/pde/internal/core/search/IPluginSearchResultCollector.java 2 Jan 2008 15:56:17 -0000 1.11 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.pde.internal.core.search; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.pde.core.plugin.IPluginObject; - -public interface IPluginSearchResultCollector { - - void accept(IPluginObject match); - - void done(); - - PluginSearchOperation getOperation(); - - void searchStarted(); - - void setOperation(PluginSearchOperation operation); - - void setProgressMonitor(IProgressMonitor monitor); - -} Index: src/org/eclipse/pde/internal/core/search/ISearchResultCollector.java =================================================================== RCS file: src/org/eclipse/pde/internal/core/search/ISearchResultCollector.java diff -N src/org/eclipse/pde/internal/core/search/ISearchResultCollector.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/pde/internal/core/search/ISearchResultCollector.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,15 @@ +/******************************************************************************* + * Copyright (c) 2005-2009 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.pde.internal.core.search; + +public interface ISearchResultCollector { + void accept(Object match); +}