// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.layer.markerlayer; import java.io.File; import java.util.Collection; import org.openstreetmap.josm.data.gpx.WayPoint; /** * This interface has to be implemented by anyone who wants to create markers. * * When reading a gpx file, all implementations of MarkerMaker registered with * the Marker are consecutively called until one returns a Marker object. * * @author Frederik Ramm * @since 200 (creation) * @since 10600 (functional interface) */ @FunctionalInterface public interface MarkerProducers { /** * Returns a collection of Marker objects if this implementation wants to create one for the * given input data, or <code>null</code> otherwise. * * @param wp waypoint data * @param relativePath An path to use for constructing relative URLs or * <code>null</code> for no relative URLs * @param parentLayer parent marker layer * @param time Absolute time of marker in seconds since epoch * @param offset Time offset in seconds from the gpx point from which it was derived * @return A collection of Marker objects, or <code>null</code>. */ Collection<Marker> createMarkers(WayPoint wp, File relativePath, MarkerLayer parentLayer, double time, double offset); }