public static List getSearchStrategies()

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;
  }