private static boolean containsOnlyLiteralNode(ContextNode contextNode) { if (contextNode.containsContextNodes()) return false; if (contextNode.containsRelations()) return false; if (! contextNode.containsLiteralNode()) return false; return true; }
private static ContextNode collapseContextNode(ContextNode contextNode) { if (contextNode.getContextNodeCount() != 1) return contextNode; if (contextNode.containsRelations()) return contextNode; if (contextNode.containsLiteralNode()) return contextNode; ContextNode childContextNode = contextNode.getContextNodes().next(); if (! (XdiAbstractEntity.isValid(contextNode) || XdiEntityCollection.isValid(contextNode)) && (XdiAbstractEntity.isValid(childContextNode) || XdiEntityCollection.isValid(childContextNode))) return contextNode; if (! (XdiAbstractAttribute.isValid(contextNode) || XdiAttributeCollection.isValid(contextNode)) && (XdiAbstractAttribute.isValid(childContextNode) || XdiAttributeCollection.isValid(childContextNode))) return contextNode; return collapseContextNode(childContextNode); }
assertFalse(markus.containsRelations(XDIAddress.create("#friend"))); assertTrue(markus.containsRelation(XDIAddress.create("$is#"), XDIAddress.create("#person"))); assertTrue(markus.containsRelations(XDIAddress.create("#friend"))); assertFalse(markus.containsRelation(XDIAddress.create("$is#"), XDIAddress.create("#person"))); } else { assertFalse(markus.containsRelations(XDIAddress.create("#friend"))); assertTrue(markus.containsRelation(XDIAddress.create("$is#"), XDIAddress.create("#person")));
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(); }
root.setRelation(XDIAddress.create("#rel"), markus); assertTrue(root.containsRelations()); assertTrue(root.containsRelations(XDIAddress.create("#rel"))); assertTrue(root.containsRelation(XDIAddress.create("#rel"), XDIAddress.create("=markus"))); assertEquals(root.getRelationCount(), 1); assertEquals(new IteratorCounter(root.getRelations()).count(), 1); assertTrue(markus.containsRelations()); assertTrue(markus.containsRelations(XDIAddress.create("#friend"))); assertTrue(markus.containsRelations(XDIAddress.create("+brother"))); assertTrue(markus.containsRelation(XDIAddress.create("#friend"), XDIAddress.create("=test=target1"))); assertTrue(markus.containsRelation(XDIAddress.create("#friend"), XDIAddress.create("=test=target2"))); markus.delRelation(XDIAddress.create("+brother"), XDIAddress.create("=test=target3")); assertFalse(root.containsRelations()); assertFalse(root.containsRelations(XDIAddress.create("#rel"))); assertFalse(root.containsRelation(XDIAddress.create("#rel"), XDIAddress.create("=markus"))); assertEquals(root.getRelationCount(), 0); assertFalse(markus.containsRelations()); assertFalse(markus.containsRelations(XDIAddress.create("#friend"))); assertFalse(markus.containsRelations(XDIAddress.create("+brother"))); assertFalse(markus.containsRelation(XDIAddress.create("#friend"), XDIAddress.create("=test=target1"))); assertFalse(markus.containsRelation(XDIAddress.create("#friend"), XDIAddress.create("=test=target2")));
assertTrue(root.isEmpty()); assertFalse(root.containsContextNodes()); assertFalse(root.containsRelations()); assertFalse(root.containsLiteralNode()); assertFalse(root.getContextNodes().hasNext()); assertTrue(root.containsRelations()); assertFalse(root.containsLiteralNode()); assertTrue(root.getContextNodes().hasNext()); assertTrue(root.containsRelations()); assertFalse(root.containsLiteralNode()); assertTrue(root.getContextNodes().hasNext()); assertFalse(root.containsRelations()); assertFalse(root.containsLiteralNode()); assertFalse(root.getContextNodes().hasNext());