package io.github.azagniotov.stubby4j.yaml; import java.util.EnumSet; import java.util.HashMap; import java.util.Map; import java.util.Optional; import static io.github.azagniotov.stubby4j.utils.StringUtils.toLower; public enum ConfigurableYAMLProperty { BODY, FILE, HEADERS, HTTPLIFECYCLE, LATENCY, METHOD, POST, QUERY, REQUEST, RESPONSE, STATUS, URL; private static final Map<String, ConfigurableYAMLProperty> CACHE; static { CACHE = new HashMap<>(); for (final ConfigurableYAMLProperty enumMember : EnumSet.allOf(ConfigurableYAMLProperty.class)) { CACHE.put(enumMember.toString(), enumMember); } } public static boolean isUnknownProperty(final String stubbedProperty) { return !CACHE.containsKey(toLower(stubbedProperty)); } public static Optional<ConfigurableYAMLProperty> ofNullableProperty(final String stubbedProperty) { return Optional.ofNullable(CACHE.get(toLower(stubbedProperty))); } @Override public String toString() { return toLower(this.name()); } }