package org.jtwig.property.strategy; import com.google.common.base.Optional; import org.jtwig.macro.ImportedMacros; import org.jtwig.macro.render.MacroRender; import org.jtwig.model.expression.FunctionExpression; import org.jtwig.property.resolver.MacroPropertyResolver; import org.jtwig.property.resolver.PropertyResolver; public class MacroPropertyResolverStrategy implements PropertyResolverStrategy { private final MacroRender macroRender; public MacroPropertyResolverStrategy(MacroRender macroRender) { this.macroRender = macroRender; } @Override public Optional<PropertyResolver> select(Request request) { if (request.getLeftValue() instanceof ImportedMacros) { if (request.getRightExpression() instanceof FunctionExpression) { ImportedMacros importedMacros = (ImportedMacros) request.getLeftValue(); PropertyResolver propertyResolver = new MacroPropertyResolver(macroRender, importedMacros); return Optional.of(propertyResolver); } } return Optional.absent(); } }