blob: 994907872d0cd4d7dfce08a394075fdb8f620404 [file] [log] [blame]
package org.eclipse.update.internal.ui.search;
import java.util.ArrayList;
import org.eclipse.core.runtime.*;
public class SearchCategoryRegistryReader {
private ArrayList descriptors;
static SearchCategoryRegistryReader instance;
SearchCategoryRegistryReader() {
}
public static SearchCategoryRegistryReader getDefault() {
if (instance == null)
instance = new SearchCategoryRegistryReader();
return instance;
}
public SearchCategoryDescriptor[] getCategoryDescriptors() {
if (descriptors == null)
load();
return (SearchCategoryDescriptor[]) descriptors.toArray(
new SearchCategoryDescriptor[descriptors.size()]);
}
public SearchCategoryDescriptor getDescriptor(String categoryId) {
if (descriptors == null)
load();
for (int i = 0; i < descriptors.size(); i++) {
SearchCategoryDescriptor desc = (SearchCategoryDescriptor) descriptors.get(i);
if (desc.getId().equals(categoryId))
return desc;
}
return null;
}
private void load() {
descriptors = new ArrayList();
IPluginRegistry registry = Platform.getPluginRegistry();
IConfigurationElement[] elements =
registry.getConfigurationElementsFor("org.eclipse.update.ui.searchCategory");
for (int i = 0; i < elements.length; i++) {
IConfigurationElement element = elements[i];
if (element.getName().equals("search"))
descriptors.add(new SearchCategoryDescriptor(element));
}
}
}