package org.batfish.grammar; import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.batfish.common.BatfishException; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; public enum RoutingTableFormat { EMPTY("empty"), EOS("eos"), NXOS("nxos"), UNKNOWN("unknown"); private final static Map<String, RoutingTableFormat> _map = buildMap(); private synchronized static Map<String, RoutingTableFormat> buildMap() { Map<String, RoutingTableFormat> map = new HashMap<>(); for (RoutingTableFormat value : RoutingTableFormat.values()) { String name = value._name; map.put(name, value); } return Collections.unmodifiableMap(map); } @JsonCreator public static RoutingTableFormat fromName(String name) { RoutingTableFormat instance = _map.get(name.toLowerCase()); if (instance == null) { throw new BatfishException( "No " + RoutingTableFormat.class.getSimpleName() + " with name: '" + name + "'"); } return instance; } private final String _name; private RoutingTableFormat(String name) { _name = name; } @JsonValue public String routingTableFormatName() { return _name; } }