@Override public List<Relation> replaceRelation(Relation relation) { XDIAddress contextNodeXDIAddress = relation.getContextNode().getXDIAddress(); XDIAddress XDIaddress = relation.getXDIAddress(); XDIAddress targetXDIAddress = relation.getTargetXDIAddress(); XDIAddress replacedContextNodeXDIAddress = replaceXDIAddress(contextNodeXDIAddress); XDIAddress replacedTargetXDIAddress = replaceXDIAddress(targetXDIAddress); if (log.isTraceEnabled()) log.trace("Replaced " + contextNodeXDIAddress + " with " + replacedContextNodeXDIAddress); if (log.isTraceEnabled()) log.trace("Replaced " + targetXDIAddress + " with " + replacedTargetXDIAddress); Relation replacedRelation = GraphUtil.relationFromComponents(replacedContextNodeXDIAddress, XDIaddress, replacedTargetXDIAddress); return Collections.singletonList(replacedRelation); }
@Override public List<ContextNode> replaceContextNode(ContextNode contextNode) { if (contextNode.isRootContextNode()) return null; if (! contextNode.getContextNode().isRootContextNode()) return null; XDIAddress contextNodeXDIAddress = contextNode.getXDIAddress(); XDIAddress replacedContextNodeXDIAddress = replaceXDIAddress(contextNodeXDIAddress); if (log.isTraceEnabled()) log.trace("Replaced " + contextNodeXDIAddress + " with " + replacedContextNodeXDIAddress); if (contextNodeXDIAddress.equals(replacedContextNodeXDIAddress)) return super.replaceContextNode(contextNode); ContextNode replacedContextNode = GraphUtil.contextNodeFromComponents(replacedContextNodeXDIAddress); CopyUtil.copyContextNodeContents(contextNode, replacedContextNode, null); int additionalArcs = replacedContextNodeXDIAddress.getNumXDIArcs() - contextNodeXDIAddress.getNumXDIArcs(); replacedContextNode = replacedContextNode.getContextNode(additionalArcs); return Collections.singletonList(replacedContextNode); }