package org.jtwig.render.environment; import org.jtwig.render.RenderResourceService; import org.jtwig.render.config.RenderConfiguration; import org.jtwig.render.expression.CalculateExpressionService; import org.jtwig.render.expression.ExpressionCalculatorSelector; import org.jtwig.render.expression.calculator.operation.binary.BinaryOperationCalculatorSelector; import org.jtwig.render.expression.calculator.operation.binary.BinaryOperationService; import org.jtwig.render.expression.calculator.operation.unary.UnaryOperationCalculatorSelector; import org.jtwig.render.expression.calculator.operation.unary.UnaryOperationService; import org.jtwig.render.expression.test.CalculateTestExpressionService; import org.jtwig.render.expression.test.TestExpressionCalculatorSelector; import org.jtwig.render.node.NodeRenderSelector; import org.jtwig.render.node.RenderNodeService; public class RenderEnvironmentFactory { public RenderEnvironment create (RenderConfiguration renderConfiguration) { NodeRenderSelector nodeRenderSelector = new NodeRenderSelector(renderConfiguration.getNodeRenders()); RenderNodeService renderNodeService = new RenderNodeService(nodeRenderSelector); RenderResourceService renderResourceService = new RenderResourceService(); ExpressionCalculatorSelector calculatorSelector = new ExpressionCalculatorSelector(renderConfiguration.getExpressionCalculators()); CalculateExpressionService calculateExpressionService = new CalculateExpressionService(calculatorSelector); BinaryOperationService binaryOperationService = new BinaryOperationService(new BinaryOperationCalculatorSelector(renderConfiguration.getBinaryExpressionCalculators())); UnaryOperationService unaryOperationService = new UnaryOperationService(new UnaryOperationCalculatorSelector(renderConfiguration.getUnaryExpressionCalculators())); CalculateTestExpressionService calculateTestExpressionService = new CalculateTestExpressionService(new TestExpressionCalculatorSelector(renderConfiguration.getTestExpressionCalculators())); return new RenderEnvironment(renderConfiguration.getStrictMode(), renderConfiguration.getDefaultOutputCharset(), renderResourceService, renderNodeService, calculateExpressionService, binaryOperationService, unaryOperationService, calculateTestExpressionService); } }