package org.batfish.datamodel; 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 ReachabilityType { INCREASED("increased"), MULTIPATH("multipath"), MULTIPATH_DIFF("multipathDiff"), PATH_DIFF("pathDiff"), REDUCED_REACHABILITY("reduced"), STANDARD("standard"); private final static Map<String, ReachabilityType> _map = buildMap(); private static Map<String, ReachabilityType> buildMap() { Map<String, ReachabilityType> map = new HashMap<>(); for (ReachabilityType value : ReachabilityType.values()) { String name = value._name.toLowerCase(); map.put(name, value); } return Collections.unmodifiableMap(map); } @JsonCreator public static ReachabilityType fromName(String name) { ReachabilityType instance = _map.get(name.toLowerCase()); if (instance == null) { throw new BatfishException( "No " + ReachabilityType.class.getSimpleName() + " with name: \"" + name + "\""); } return instance; } private final String _name; private ReachabilityType(String name) { _name = name; } @JsonValue public String reachabilityTypeName() { return _name; } }