if (!target.hasAttributes()) {
// e.g: #set (x = "1") or #set ($n.x = "1")
data.setAttribute(target.getVariableName(), target.getSpecifiedContext(context));
} else {
// e.g: #set (x.a = "1") or #set ($n.x.a = "1") or #set (a.b.c.d = 1)
AttributeRefs targetAttributeRefs = target.getAttributesRefs();
AttributeRef targetAttributeRef = targetAttributeRefs.getLastAttribute();
String targetAttributeName = targetAttributeRef.getName();
Object targetObject = target.getContext().evaluate(target.getAttributeRef());
if (targetObject == null) {
throw new InterpretationException(source, indexInSource, "Can not set value, the target was null '" + target.getAttributeRef().getName() + "'");
}
targetAttributeRefs = targetAttributeRefs.createAttributesSkipLast();
if (targetAttributeRefs.hasAttributes()) {
targetObject = targetAttributeRefs.evaluateNextAttributes(target.getContext(), targetObject);
}
Context targetContext = contextFactory.createContext(targetObject, targetAttributeRef);
data.setAttribute(targetAttributeName, targetContext);
}