001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.data.osm.visitor;
003
004import org.openstreetmap.josm.data.osm.Node;
005import org.openstreetmap.josm.data.osm.Relation;
006import org.openstreetmap.josm.data.osm.Way;
007
008/**
009 * Implementation of the visitor pattern for the 3 {@link org.openstreetmap.josm.data.osm.OsmPrimitive}
010 * types {@link Node}, {@link Way} and {@link Relation}.
011 * @since 12810
012 */
013public interface OsmPrimitiveVisitor {
014    /**
015     * Visiting call for points.
016     * @param n The node to inspect.
017     */
018    void visit(Node n);
019
020    /**
021     * Visiting call for lines.
022     * @param w The way to inspect.
023     * @since 64
024     */
025    void visit(Way w);
026
027    /**
028     * Visiting call for relations.
029     * @param r The relation to inspect.
030     * @since 343
031     */
032    void visit(Relation r);
033
034}