// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.graphview.core.transition;
import java.util.Collection;
import org.openstreetmap.josm.plugins.graphview.core.property.RoadPropertyType;
/**
* superinterface for {@link SegmentNode} and {@link Segment}; contains property related methods
*/
public interface TransitionStructureElement {
/**
* returns the types of this object's properties
*
* @return property type collection; != null
*/
Collection<RoadPropertyType<?>> getAvailableProperties();
/**
* returns the value of a property for this object
*
* @param propertyType property type to return value for; != null
* @return property value of the property for this segment; null if not available
*/
<P> P getPropertyValue(RoadPropertyType<P> propertyType);
}