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 }