/** * Checks if a context node is a valid XDI common root. * @param contextNode The context node to check. * @return True if the context node is a valid XDI common root. */ public static boolean isValid(ContextNode contextNode) { if (contextNode == null) throw new NullPointerException(); return contextNode.isRootContextNode(); }
if (! contextNode.isRootContextNode()) { if (! contextNode.isRootContextNode()) {
@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); }
private static void deleteWhileEmptyAndNoIncomingRelations(ContextNode contextNode) { ContextNode currentContextNode = contextNode; ContextNode parentContextNode; while (currentContextNode.isEmpty() && (! currentContextNode.containsIncomingRelations()) && (! currentContextNode.isRootContextNode())) { parentContextNode = currentContextNode.getContextNode(); currentContextNode.delete(); currentContextNode = parentContextNode; } }
/** * Copies a context node into a target graph. * @param contextNode A context node from any graph. * @param targetGraph The target graph. * @param copyStrategy The strategy to determine what to copy. * @return The copied context node in the target graph. */ public static ContextNode copyContextNode(ContextNode contextNode, Graph targetGraph, CopyStrategy copyStrategy) { if (contextNode == null) throw new NullPointerException(); if (targetGraph == null) throw new NullPointerException(); if (copyStrategy == null) copyStrategy = DEFAULT_COPY_STRATEGY; ContextNode targetContextNode; XDIAddress contextNodeXDIAddress = contextNode.getXDIAddress(); if (contextNode.isRootContextNode()) { targetContextNode = targetGraph.getRootContextNode(false); copyContextNodeContents(contextNode, targetContextNode, copyStrategy); } else { targetContextNode = targetGraph.setDeepContextNode(contextNodeXDIAddress); copyContextNodeContents(contextNode, targetContextNode, copyStrategy); } return targetContextNode; }
public void testSimple() throws Exception { Graph graph0 = this.getGraphFactory().openGraph(this.getClass().getName() + "-graph-0"); ContextNode markus = graph0.getRootContextNode().setContextNode(XDIArc.create("=markus")); ContextNode email = markus.setContextNode(XDIArc.create("<#email>")); email.setLiteralNode("abc@gmail.com"); markus.setRelation(XDIAddress.create("#friend"), XDIAddress.create("=drummond")); markus = graph0.getRootContextNode().getContextNode(XDIArc.create("=markus")); assertNotNull(markus); assertFalse(markus.isRootContextNode()); assertFalse(markus.isEmpty()); assertFalse(markus.isLeafContextNode()); assertTrue(markus.containsRelations()); assertFalse(markus.containsLiteralNode()); assertTrue(email.isLeafContextNode()); assertTrue(email.containsLiteralNode()); ContextNode drummond = graph0.getRootContextNode().getContextNode(XDIArc.create("=drummond")); assertNotNull(drummond); assertTrue(drummond.isEmpty()); assertTrue(drummond.isLeafContextNode()); email.setLiteralNode("xyz@gmail.com"); assertEquals(graph0.getDeepLiteralNode(XDIAddress.create("=markus<#email>&")).getLiteralData(), "xyz@gmail.com"); assertEquals(graph0.getDeepContextNode(XDIAddress.create("=markus<#email>")).getLiteralNode().getLiteralData(), "xyz@gmail.com"); graph0.close(); }
LiteralNode l = timestamp.setLiteralNode("test"); assertTrue(a.getContextNode().isRootContextNode()); assertNull(a.getContextNode().getContextNode());
assertNull(root.getXDIArc()); assertNull(root.getContextNode()); assertTrue(root.isRootContextNode());