// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.data.osm.visitor;
import org.openstreetmap.josm.data.osm.INode;
import org.openstreetmap.josm.data.osm.IRelation;
import org.openstreetmap.josm.data.osm.IWay;
/**
* OSM primitives interfaces visitor, following conventional <a href="https://en.wikipedia.org/wiki/Visitor_pattern">visitor design pattern</a>.
* @since 4100
*/
public interface PrimitiveVisitor {
/**
* Visiting call for points.
* @param n The node to inspect.
*/
void visit(INode n);
/**
* Visiting call for lines.
* @param w The way to inspect.
*/
void visit(IWay w);
/**
* Visiting call for relations.
* @param r The relation to inspect.
*/
void visit(IRelation r);
}