if (result.size() == 0) return result;
// Prepapare filter options ...
final OptionUtils<DiscoverOption> ou = new OptionUtils<DiscoverOption>(options);
DiscoveredPlugin best = result.iterator().next();
if (ou.contains(OptionNearest.class)) {
// Check all plugins
for (final DiscoveredPlugin p : result) {
// If this one is closer, replace them
if (p.getDistance() < best.getDistance()) {
best = p;
}
}
// Remove all other plugins
result.clear();
result.add(best);
}
if (ou.contains(OptionYoungest.class)) {
// Check all plugins
for (final DiscoveredPlugin p : result) {
// If this one is closer, replace them
if (p.getTimeSinceExport() < best.getTimeSinceExport()) {
best = p;
}
}
// Remove all other plugins
result.clear();
result.add(best);
}
if (ou.contains(OptionOldest.class)) {
// Check all plugins
for (final DiscoveredPlugin p : result) {
// If this one is closer, replace them
if (p.getTimeSinceExport() > best.getTimeSinceExport()) {
best = p;
}
}
// Remove all other plugins