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;
public enum State {
ESTABLISHED(1),
INVALID(3),
NEW(0),
RELATED(2);
private final static Map<Integer, State> _map = buildNumberMap();
private final static Map<String, State> _nameMap = buildNameMap();
private synchronized static Map<String, State> buildNameMap() {
Map<String, State> map = new HashMap<>();
for (State value : State.values()) {
String name = value.name().toLowerCase();
map.put(name, value);
}
return Collections.unmodifiableMap(map);
}
private synchronized static Map<Integer, State> buildNumberMap() {
Map<Integer, State> map = new HashMap<>();
for (State value : State.values()) {
int num = value._num;
map.put(num, value);
}
return Collections.unmodifiableMap(map);
}
public static State fromNum(int num) {
State instance = _map.get(num);
if (instance == null) {
throw new BatfishException("Not a valid state number: '" + num + "'");
}
return instance;
}
@JsonCreator
public static State fromString(String name) {
State state = _nameMap.get(name.toLowerCase());
if (state == null) {
throw new BatfishException("No state with name: '" + name + "'");
}
return state;
}
private final int _num;
private State(int num) {
_num = num;
}
public int number() {
return _num;
}
}