List data = datamodel.getData();
if (data == null) {
return;
}
for (Iterator iter = data.iterator(); iter.hasNext();) {
Data datum = (Data) iter.next();
Node datumNode = datum.getNode();
Node valueNode = null;
if (datumNode != null) {
valueNode = datumNode.cloneNode(true);
}
// prefer "src" over "expr" over "inline"
if (!SCXMLHelper.isStringEmpty(datum.getSrc())) {
ctx.setLocal(datum.getName(), valueNode);
} else if (!SCXMLHelper.isStringEmpty(datum.
getExpr())) {
Object value = null;
try {
ctx.setLocal(NAMESPACES_KEY, datum.getNamespaces());
value = evaluator.eval(ctx, datum.getExpr());
ctx.setLocal(NAMESPACES_KEY, null);
} catch (SCXMLExpressionException see) {
if (log != null) {
log.error(see.getMessage(), see);
} else {
Log defaultLog = LogFactory.getLog(SCXMLHelper.class);
defaultLog.error(see.getMessage(), see);
}
}
ctx.setLocal(datum.getName(), value);
} else {
ctx.setLocal(datum.getName(), valueNode);
}
}
}