// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.plugins.turnrestrictions.editor; import static org.openstreetmap.josm.tools.I18n.tr; /** * This is the enumeration of turn restriction types, see * <a href="http://wiki.openstreetmap.org/wiki/Turn_restriction">OSM Wiki</a> * */ public enum TurnRestrictionType { NO_RIGHT_TURN("no_right_turn", tr("No Right Turn")), NO_LEFT_TURN("no_left_turn", tr("No Left Turn")), NO_U_TURN("no_u_turn", tr("No U-Turn")), NO_STRAIGHT_ON("no_straight_on", tr("No Straight On")), ONLY_RIGHT_TURN("only_right_turn", tr("Only Right Turn")), ONLY_LEFT_TURN("only_left_turn", tr("Only Left Turn")), ONLY_STRAIGHT_ON("only_straight_on", tr("Only Straight On")); private String tagValue; private String displayName; TurnRestrictionType(String tagValue, String displayName) { this.tagValue = tagValue; this.displayName = displayName; } /** * Replies the tag value for a specific turn restriction type * * @return the tag value for a specific turn restriction type */ public String getTagValue() { return tagValue; } /** * Replies the localized display name for a turn restriction type */ public String getDisplayName() { return displayName; } /** * Replies the enumeration value for a given tag value. null, * if {@code tagValue} is null or if there isnt an enumeration value * for this {@code tagValue} * * @param tagValue the tag value, i.e. <tt>no_left_turn</tt> * @return the enumeration value */ public static TurnRestrictionType fromTagValue(String tagValue) { if (tagValue == null) return null; for (TurnRestrictionType type: values()) { if (type.getTagValue().equals(tagValue)) return type; } return null; } /** * Replies true if {@code tagValue} is a standard restriction type. * * @param tagValue the tag value * @return true if {@code tagValue} is a standard restriction type */ public static boolean isStandardTagValue(String tagValue) { return fromTagValue(tagValue) != null; } }