// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.plugins.graphview.core.property; import java.util.Collection; import org.openstreetmap.josm.plugins.graphview.core.access.AccessParameters; import org.openstreetmap.josm.plugins.graphview.core.data.DataSource; import org.openstreetmap.josm.plugins.graphview.core.data.TagGroup; public class RoadSurface implements RoadPropertyType<String> { @Override public <N, W, R, M> String evaluateN(N node, AccessParameters accessParameters, DataSource<N, W, R, M> dataSource) { return null; } @Override public <N, W, R, M> String evaluateW(W way, boolean forward, AccessParameters accessParameters, DataSource<N, W, R, M> dataSource) { assert way != null && accessParameters != null && dataSource != null; TagGroup tags = dataSource.getTagsW(way); return tags.getValue("surface"); } @Override public boolean isUsable(Object propertyValue, AccessParameters accessParameters) { assert propertyValue instanceof String; String surface = (String) propertyValue; Collection<String> surfaceBlacklist = accessParameters.getVehiclePropertyValue(VehiclePropertyTypes.SURFACE_BLACKLIST); if (surfaceBlacklist != null && surfaceBlacklist.contains(surface)) { return false; } else { return true; } } }