public Expression inject(Expression exp, /*@NotNull*/ StaticContext env, int construct, StructuredQName qName) {
if (exp instanceof Literal) {
return exp;
}
TraceExpression trace = new TraceExpression(exp);
//ExpressionTool.copyLocationInfo(exp, trace);
trace.setNamespaceResolver(env.getNamespaceResolver());
trace.setConstructType(construct);
trace.setObjectName(qName);
ArrayList<String[]> properties = exp.getTraceProperties();
if (properties != null) {
for (String[] property: properties) {
trace.setProperty(property[0], property[1]);
}
}
//trace.setObjectNameCode(objectNameCode);
return trace;
}