ProcessorTools.java
package sk.iway.iwcm.system.spring.webjet_component.dialect;
import javax.servlet.http.HttpServletRequest;
import org.thymeleaf.IEngineConfiguration;
import org.thymeleaf.context.ITemplateContext;
import org.thymeleaf.model.IProcessableElementTag;
import org.thymeleaf.standard.expression.IStandardExpression;
import org.thymeleaf.standard.expression.IStandardExpressionParser;
import org.thymeleaf.standard.expression.StandardExpressions;
import sk.iway.iwcm.PageLng;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.tags.CombineTag;
public class ProcessorTools {
private ProcessorTools() {
//private konstruktor, trieda ma len staticke metody
}
/**
* Vrati hodnotu zadaneho atributu na hlavnom tagu
*
* @param combineTag
* @param name
* @return
*/
protected static String getAttributeValue(IProcessableElementTag tag, ITemplateContext context, String name) {
String value = tag.getAttributeValue(name);
StringBuilder processed = new StringBuilder();
if (value.contains("\n")) {
// je to multiline, musime to poskladat
String[] lines = Tools.getTokens(value, "\n", true);
for (String line : lines) {
processed.append(processExpression(context, line)).append("\n");
}
} else {
processed.append(processExpression(context, value));
}
return processed.toString();
}
/**
* Vykona expression v retazci
*
* @param expression
* @param context
* @return
*/
private static String processExpression(ITemplateContext context, String expression) {
if (expression.contains("{") && expression.contains("}")) {
final IEngineConfiguration configuration = context.getConfiguration();
final IStandardExpressionParser parser = StandardExpressions.getExpressionParser(configuration);
final IStandardExpression expressionToExecute = parser.parseExpression(context, expression);
return (String) expressionToExecute.execute(context);
}
return expression;
}
/**
* Vrati jazyk aktualne prihlaseneho usera, aby sa spravne nacitali cachovane
* subory (sucast parametra)
*
* @return String
*/
protected static String getLng(HttpServletRequest request) {
return PageLng.getUserLng(request);
}
/**
* Vrati verziu aktualnych suborov, aby sa spravne cachovali subory
*
* @return long
*/
protected static long getVersion() {
return CombineTag.getVersion();
}
}