@Override public List<ContextNode> replaceContextNode(ContextNode contextNode) { Relation relation = contextNode.getRelation(XDIConstants.XDI_ADD_LITERAL_VARIABLE); if (relation == null) return null; XDIAddress targetXDIAddress = relation.getTargetXDIAddress(); if (targetXDIAddress.getNumXDIArcs() > 1) return null; Object replacement = this.replacements.get(targetXDIAddress.getFirstXDIArc()); ContextNode replacedContextNode = CloneUtil.cloneContextNode(contextNode); replacedContextNode.delRelations(XDIConstants.XDI_ADD_LITERAL_VARIABLE); replacedContextNode.delLiteralNode(); replacedContextNode.setLiteralNode(replacement); if (log.isTraceEnabled()) log.trace("Replaced " + targetXDIAddress + " with " + replacement); return Collections.singletonList(replacedContextNode); } }