@Override public List<ContextNode> replaceContextNode(ContextNode contextNode) { XDIAddress contextNodeXDIAddress = contextNode.getXDIAddress(); XDIAddress replacedContextNodeXDIAddress = replaceXDIAddress(contextNodeXDIAddress); ContextNode replacedContextNode = GraphUtil.contextNodeFromComponents(replacedContextNodeXDIAddress); CopyUtil.copyContextNodeContents(contextNode, replacedContextNode, null); return Collections.singletonList(replacedContextNode); }
public void testExtractXDIAddressCopyStrategy() throws Exception { String graphString = "" + "(=z)=a=b<#c>/&/123" + "\n" + "(=z)=a/#e/(=z)=f" + "\n" + "(=z)=f/#g/(=z)=a=b"; String copiedGraphString = "" + "=a=b<#c>/&/123" + "\n" + "=a/#e/=f" + "\n" + "=f/#g/=a=b"; Graph graph1 = MemoryGraphFactory.getInstance().parseGraph(graphString); Graph graph2 = MemoryGraphFactory.getInstance().parseGraph(copiedGraphString); Graph graph3 = MemoryGraphFactory.getInstance().openGraph(); CopyUtil.copyGraph(graph1, graph3, new ExtractXDIAddressCopyStrategy(XdiPeerRoot.class, false, false, false, false, true)); assertNotEquals(graph1, graph2); assertNotEquals(graph1, graph3); assertEquals(graph2, graph3); graph1.close(); graph2.close(); graph3.close(); } }
public void testExtractXDIAddressCopyStrategyLight() throws Exception { String graphString = "" + "(=z)//=a"; String copiedGraphString = "" + "//=a"; Graph graph1 = MemoryGraphFactory.getInstance().parseGraph(graphString); Graph graph2 = MemoryGraphFactory.getInstance().parseGraph(copiedGraphString); Graph graph3 = MemoryGraphFactory.getInstance().openGraph(); CopyUtil.copyGraph(graph1, graph3, new ExtractXDIAddressCopyStrategy(XdiPeerRoot.class, false, false, false, false, true)); assertNotEquals(graph1, graph2); assertNotEquals(graph1, graph3); assertEquals(graph2, graph3); graph1.close(); graph2.close(); graph3.close(); }
@Override public List<Relation> replaceRelation(Relation relation) { XDIAddress contextNodeXDIAddress = relation.getContextNode().getXDIAddress(); XDIAddress XDIaddress = relation.getXDIAddress(); XDIAddress targetXDIAddress = relation.getTargetXDIAddress(); XDIAddress replacedTargetXDIAddress = replaceXDIAddress(targetXDIAddress); Relation replacedRelation = GraphUtil.relationFromComponents(contextNodeXDIAddress, XDIaddress, replacedTargetXDIAddress); return Collections.singletonList(replacedRelation); }