final AssignationSequence assignations =
AssignationUtils.parseAssignationSequence(
configuration, arguments, attributeValue, false /* no parameters without value */);
if (assignations == null) {
throw new TemplateProcessingException(
"Could not parse value as attribute assignations: \"" + attributeValue + "\"");
}
Arguments assignationExecutionArguments = arguments;
final Map<String,Object> newLocalVariables = new HashMap<String,Object>(assignations.size() + 1, 1.0f);
for (final Assignation assignation : assignations) {
final IStandardExpression leftExpr = assignation.getLeft();
final Object leftValue = leftExpr.execute(configuration, assignationExecutionArguments);
final IStandardExpression rightExpr = assignation.getRight();
final Object rightValue = rightExpr.execute(configuration, assignationExecutionArguments);
final String newVariableName = (leftValue == null? null : leftValue.toString());
if (StringUtils.isEmptyOrWhitespace(newVariableName)) {
throw new TemplateProcessingException(
"Variable name expression evaluated as null or empty: \"" + leftExpr + "\"");
}
// Creating a new Arguments object allows the reuse of variables in, for example, th:with expressions.
assignationExecutionArguments =