in uimaj-ep-cev/src/main/java/org/apache/uima/cev/CEVPlugin.java [172:214]
public static List<ICEVSearchStrategy> getSearchStrategies() {
List<ICEVSearchStrategy> result = new ArrayList<ICEVSearchStrategy>();
IExtension[] searchExtensions = Platform.getExtensionRegistry()
.getExtensionPoint(CEVPlugin.PLUGIN_ID, "cevSearchStrategies").getExtensions();
for (IExtension extension : searchExtensions) {
IConfigurationElement[] configurationElements = extension.getConfigurationElements();
for (IConfigurationElement configurationElement : configurationElements) {
Object factoryObject = null;
String priorityString = null;
try {
factoryObject = configurationElement.createExecutableExtension(ATT_FACTORY);
priorityString = configurationElement.getAttribute(ATT_PRIORITY);
} catch (CoreException e) {
CEVPlugin.error(e);
}
if (factoryObject instanceof ICEVSearchStrategyFactory) {
ICEVSearchStrategyFactory searchFactory = (ICEVSearchStrategyFactory) factoryObject;
int priority = 100;
try {
priority = Integer.parseInt(priorityString);
} catch (NumberFormatException e) {
// bad string
}
ICEVSearchStrategy strategy = searchFactory.createSearchStrategy(priority);
result.add(strategy);
}
}
}
Collections.sort(result, new Comparator<ICEVSearchStrategy>() {
public int compare(ICEVSearchStrategy o1, ICEVSearchStrategy o2) {
if (o1.getPriority() < o2.getPriority()) {
return -1;
} else if (o1.getPriority() > o2.getPriority()) {
return 1;
} else {
return 0;
}
}
});
return result;
}