package org.jtwig.escape; import com.google.common.base.Optional; import org.apache.commons.lang3.StringUtils; import java.util.Collection; import java.util.HashMap; import java.util.Map; public class EscapeEngineSelector { public static EscapeEngineSelector newInstance(Map<String, EscapeEngine> escapeEngineMap) { Map<String, EscapeEngine> map = new HashMap<>(); for (Map.Entry<String, EscapeEngine> entry : escapeEngineMap.entrySet()) { map.put(entry.getKey().toLowerCase(), entry.getValue()); } return new EscapeEngineSelector(map); } private final Map<String, EscapeEngine> escapeEngineMap; private EscapeEngineSelector(Map<String, EscapeEngine> escapeEngineMap) { this.escapeEngineMap = escapeEngineMap; } public Optional<EscapeEngine> escapeEngineFor (String name) { return Optional.fromNullable(escapeEngineMap.get(StringUtils.lowerCase(name))); } public Collection<String> availableEscapeEngines() { return escapeEngineMap.keySet(); } }