// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.graphview.core.transition;
import java.util.Collection;
/**
* graph-like structure for transition between OSM node/way/relation representation
* and the WayGraph. It consists of Nodes, Segments, and Restrictions.
*/
public interface TransitionStructure {
Collection<SegmentNode> getNodes();
Collection<Segment> getSegments();
Collection<Restriction> getRestrictions();
/**
* adds an observer.
* Does nothing if the parameter is already an observer of this TransitionStructure.
*
* @param observer observer object, != null
*/
void addObserver(TransitionStructureObserver observer);
/**
* deletes an observer that has been added using {@link #addObserver(TransitionStructureObserver)}.
* Does nothing if the parameter isn't currently an observer of this TransitionStructure.
*
* @param observer observer object, != null
*/
void deleteObserver(TransitionStructureObserver observer);
}