package org.jtwig.escape.environment;
import com.google.common.base.Preconditions;
import org.jtwig.escape.EscapeEngineSelector;
import org.jtwig.escape.config.EscapeEngineConfiguration;
public class EscapeEnvironmentFactory {
public EscapeEnvironment create (EscapeEngineConfiguration configuration) {
Preconditions.checkArgument(configuration.getEscapeEngineMap().containsKey(configuration.getInitialEngine()), String.format("Invalid initial escape mode %s, it must be one of %s", configuration.getInitialEngine(), configuration.getEscapeEngineMap().keySet()));
Preconditions.checkArgument(configuration.getEscapeEngineMap().containsKey(configuration.getDefaultEngine()), String.format("Invalid default escape mode %s, it must be one of %s", configuration.getDefaultEngine(), configuration.getEscapeEngineMap().keySet()));
return new EscapeEnvironment(
configuration.getEscapeEngineMap().get(configuration.getInitialEngine()),
configuration.getDefaultEngine(),
EscapeEngineSelector.newInstance(configuration.getEscapeEngineMap())
);
}
}