// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.waypointSearch;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Pattern;
import org.openstreetmap.josm.Main;
import org.openstreetmap.josm.gui.layer.markerlayer.Marker;
import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
final class Engine {
private Engine() {
// Utility class
}
static List<Marker> searchGpxWaypoints(String waypointSearchPattern) {
List<Marker> returnList = new ArrayList<>();
if (gpxLayersExist()) {
//Loop over marker (waypoint) layers.. it could be more than one
for (Iterator<MarkerLayer> it = Main.getLayerManager().getLayersOfType(MarkerLayer.class).iterator(); it.hasNext();) {
//loop over each marker (waypoint)
for (Iterator<Marker> markerIterator = it.next().data.iterator(); markerIterator.hasNext();) {
Marker marker = markerIterator.next();
if (Pattern.matches(".*\\Q"+waypointSearchPattern.toLowerCase()+"\\E.*", marker.getText().toLowerCase())) {
returnList.add(marker);
}
}
}
}
return returnList;
}
static boolean gpxLayersExist() {
return !Main.getLayerManager().getLayersOfType(MarkerLayer.class).isEmpty();
}
}