org.jtwig.environment.Environment Maven / Gradle / Ivy
package org.jtwig.environment;
import com.google.common.base.Optional;
import org.jtwig.escape.environment.EscapeEnvironment;
import org.jtwig.functions.resolver.FunctionResolver;
import org.jtwig.parser.JtwigParser;
import org.jtwig.property.environment.PropertyResolverEnvironment;
import org.jtwig.render.environment.RenderEnvironment;
import org.jtwig.render.expression.calculator.enumerated.EnumerationListStrategy;
import org.jtwig.resource.environment.ResourceEnvironment;
import org.jtwig.value.environment.ValueEnvironment;
import java.util.Map;
/**
* A representation of all Jtwig configured behaviour.
*/
public class Environment {
private final JtwigParser parser;
private final Map parameters;
private final ResourceEnvironment resourceEnvironment;
private final FunctionResolver functionResolver;
private final PropertyResolverEnvironment propertyResolverEnvironment;
private final RenderEnvironment renderEnvironment;
private final ValueEnvironment valueEnvironment;
private final EnumerationListStrategy enumerationStrategy;
private final EscapeEnvironment escapeEnvironment;
public Environment(JtwigParser parser, Map parameters,
ResourceEnvironment resourceEnvironment, FunctionResolver functionResolver,
PropertyResolverEnvironment propertyResolverEnvironment, RenderEnvironment renderEnvironment,
ValueEnvironment valueEnvironment, EnumerationListStrategy enumerationStrategy,
EscapeEnvironment escapeEnvironment) {
this.parser = parser;
this.parameters = parameters;
this.resourceEnvironment = resourceEnvironment;
this.functionResolver = functionResolver;
this.propertyResolverEnvironment = propertyResolverEnvironment;
this.renderEnvironment = renderEnvironment;
this.valueEnvironment = valueEnvironment;
this.enumerationStrategy = enumerationStrategy;
this.escapeEnvironment = escapeEnvironment;
}
public JtwigParser getParser() {
return parser;
}
public ResourceEnvironment getResourceEnvironment() {
return resourceEnvironment;
}
public FunctionResolver getFunctionResolver() {
return functionResolver;
}
public PropertyResolverEnvironment getPropertyResolverEnvironment() {
return propertyResolverEnvironment;
}
public RenderEnvironment getRenderEnvironment() {
return renderEnvironment;
}
public EscapeEnvironment getEscapeEnvironment() {
return escapeEnvironment;
}
public T parameter(String name, T defaultValue) {
return (T) Optional.fromNullable(parameters.get(name)).or(defaultValue);
}
public T parameter (String name) {
Optional