001 // License: GPL. Copyright 2007 by Immanuel Scholz and others
002 package org.openstreetmap.josm.data.osm.visitor;
003
004 import org.openstreetmap.josm.data.osm.Changeset;
005 import org.openstreetmap.josm.data.osm.Node;
006 import org.openstreetmap.josm.data.osm.Relation;
007 import org.openstreetmap.josm.data.osm.Way;
008
009 /**
010 * Implementation of the visitor scheme. Every @{link org.openstreetmap.josm.data.OsmPrimitive}
011 * can be visited by several different visitors.
012 */
013 public interface Visitor {
014 /**
015 * Visiting call for points.
016 * @param n The node to inspect.
017 */
018 void visit(Node n);
019 /**
020 * Visiting call for lines.
021 * @param w The way to inspect.
022 */
023 void visit(Way w);
024 /**
025 * Visiting call for relations.
026 * @param e The relation to inspect.
027 */
028 void visit(Relation e);
029 /**
030 * Visiting call for changesets.
031 * @param cs The changeset to inspect.
032 */
033 void visit(Changeset cs);
034 }