X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fthymeleaf%2FImportVariablesAttrProcessor.java;h=d41b33ccef2b9399812e4e7687f52ec3b871a35b;hb=c94cd0b3523211553876970625a37fe279cbcad2;hp=aac37a6cd6f25dfb95d7fa12f291d5a5abfa6a84;hpb=821382582b5e3c55042accfabcd3bbbcedf3df5e;p=juplo-dialect diff --git a/src/main/java/de/juplo/thymeleaf/ImportVariablesAttrProcessor.java b/src/main/java/de/juplo/thymeleaf/ImportVariablesAttrProcessor.java index aac37a6..d41b33c 100644 --- a/src/main/java/de/juplo/thymeleaf/ImportVariablesAttrProcessor.java +++ b/src/main/java/de/juplo/thymeleaf/ImportVariablesAttrProcessor.java @@ -15,20 +15,19 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.thymeleaf.Arguments; -import org.thymeleaf.Configuration; -import org.thymeleaf.TemplateProcessingParameters; import org.thymeleaf.context.IContext; -import org.thymeleaf.context.VariablesMap; -import org.thymeleaf.dom.Element; -import org.thymeleaf.dom.Node; +import org.thymeleaf.context.ITemplateContext; +import org.thymeleaf.engine.AttributeName; +import org.thymeleaf.engine.EngineEventUtils; import org.thymeleaf.exceptions.TemplateProcessingException; -import org.thymeleaf.processor.ProcessorResult; -import org.thymeleaf.processor.attr.AbstractAttrProcessor; -import org.thymeleaf.resourceresolver.IResourceResolver; +import org.thymeleaf.model.IModel; +import org.thymeleaf.model.IProcessableElementTag; +import org.thymeleaf.processor.element.AbstractAttributeModelProcessor; +import org.thymeleaf.processor.element.IElementModelStructureHandler; import org.thymeleaf.standard.expression.IStandardExpression; import org.thymeleaf.standard.expression.IStandardExpressionParser; import org.thymeleaf.standard.expression.StandardExpressions; +import org.thymeleaf.templatemode.TemplateMode; import org.thymeleaf.templateresolver.ITemplateResolver; import org.thymeleaf.templateresolver.TemplateResolution; @@ -39,7 +38,7 @@ import org.thymeleaf.templateresolver.TemplateResolution; * variables. * @author Kai Moritz */ -public class ImportVariablesAttrProcessor extends AbstractAttrProcessor +public class ImportVariablesAttrProcessor extends AbstractAttributeModelProcessor { private static final Logger LOG = LoggerFactory.getLogger(ImportVariablesAttrProcessor.class); @@ -55,38 +54,48 @@ public class ImportVariablesAttrProcessor extends AbstractAttrProcessor public static final int ATTR_PRECEDENCE = 200; - public ImportVariablesAttrProcessor() + public ImportVariablesAttrProcessor( + final String prefix, + final String attribute, + final String substitute + ) { - super("variables"); + super( + TemplateMode.HTML, + prefix, + null, + false, + attribute, + true, + ATTR_PRECEDENCE, + false + ); } @Override - public final ProcessorResult processAttribute( - final Arguments arguments, - final Element element, - final String name + protected void doProcess( + final ITemplateContext context, + final IModel model, + final AttributeName attributeName, + final String attributeValue, + final IElementModelStructureHandler handler ) { - Configuration config = arguments.getConfiguration(); - - Configuration configuration = arguments.getConfiguration(); - - String parameter = element.getAttributeValue(name); - try - { - IStandardExpressionParser parser = - StandardExpressions.getExpressionParser(configuration); - IStandardExpression expression = - parser.parseExpression(configuration, arguments, parameter); - parameter = (String)expression.execute(configuration, arguments); - } - catch (TemplateProcessingException e) { } + final IProcessableElementTag element = (IProcessableElementTag) model.get(0); + final String parameter = + EngineEventUtils.computeAttributeExpression( + context, + element, + attributeName, + attributeValue + ) + .execute(context).toString(); if (parameter != null && !parameter.trim().isEmpty()) { LOG.info("ignoring empty parameter"); - return ProcessorResult.OK; + return; } Iterator> it = null;