/** * Returns the sender address of the message collection. * @return The sender adddress of the message collection. */ public XDIAddress getSenderXDIAddress() { return this.getSender().getXDIAddress(); }
@Override public Relation getDeepRelation(XDIAddress relativeContextNodeXDIAddress, XDIAddress XDIaddress) { ContextNode contextNode = this.getDeepContextNode(relativeContextNodeXDIAddress); if (contextNode == null) return null; return contextNode.getRelation(XDIaddress); }
public void setupPushPermissionInverseRelations() { ReadOnlyIterator<Relation> pushPermissionRelations = this.getPermissionsContextNode().getRelations(XDILinkContractConstants.XDI_ADD_PUSH); for (Relation pushPermissionRelation : pushPermissionRelations) { pushPermissionRelation.followContextNode().setRelation(XDILinkContractConstants.XDI_ADD_IS_PUSH, this.getContextNode().getXDIAddress()); } }
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; } }
public static void setReplacementContextNode(ContextNode contextNode, XDIAddress replacementContextNodeXDIAddress, boolean inverse) { contextNode.delRelations(XDIDictionaryConstants.XDI_ADD_REF); contextNode.delRelations(XDIDictionaryConstants.XDI_ADD_REP); Relation relation = contextNode.setRelation(XDIDictionaryConstants.XDI_ADD_REP, replacementContextNodeXDIAddress); if (inverse) relation.followContextNode().setRelation(XDIDictionaryConstants.XDI_ADD_IS_REP, relation.getContextNode()); }
/** * Checks if a context node is a valid XDI entity singleton. * @param contextNode The context node to check. * @return True if the context node is a valid XDI entity singleton. */ public static boolean isValid(ContextNode contextNode) { if (contextNode == null) throw new NullPointerException(); if (contextNode.getXDIArc() == null || ! isValidXDIArc(contextNode.getXDIArc())) return false; if (contextNode.getContextNode() != null && XdiAttributeCollection.isValid(contextNode.getContextNode())) return false; if (contextNode.getContextNode() != null && XdiAbstractAttribute.isValid(contextNode.getContextNode())) return false; return true; }
assertEquals(root.getXDIAddress(), XDIConstants.XDI_ADD_ROOT); assertNull(root.getXDIArc()); assertNull(root.getContextNode()); assertTrue(root.isRootContextNode()); assertTrue(root.isEmpty()); assertFalse(root.containsContextNodes()); assertFalse(root.containsRelations()); assertFalse(root.containsLiteralNode()); assertFalse(root.getContextNodes().hasNext()); assertFalse(root.getRelations().hasNext()); assertNull(root.getLiteralNode()); assertEquals(root.getContextNodeCount(), 0); assertEquals(root.getRelationCount(), 0); assertFalse(root.getAllContextNodes().hasNext()); assertFalse(root.getAllRelations().hasNext()); assertFalse(root.getAllLiteralNodes().hasNext()); root.setRelation(XDIAddress.create("*arc"), XDIAddress.create("=target")); root.setContextNode(XDIArc.create("<#test>")).setLiteralNode("test"); assertFalse(root.isEmpty()); assertTrue(root.containsContextNodes()); assertTrue(root.containsRelations()); assertFalse(root.containsLiteralNode()); assertTrue(root.getContextNodes().hasNext()); assertTrue(root.getRelations().hasNext()); assertNotNull(root.getRelations().next().follow()); assertNull(root.getLiteralNode());
public void testDelete() throws Exception { Graph graph26 = this.getGraphFactory().openGraph(this.getClass().getName() + "-graph-26"); ContextNode root = graph26.getRootContextNode(); root.setContextNode(XDIArc.create("+a")); assertTrue(root.containsContextNode(XDIArc.create("+a"))); assertNotNull(root.getContextNode(XDIArc.create("+a"))); root.delContextNode(XDIArc.create("+a")); assertFalse(graph26.getRootContextNode().containsContextNode(XDIArc.create("+a"))); assertFalse(root.containsContextNode(XDIArc.create("+a"))); assertNull(graph26.getRootContextNode().getContextNode(XDIArc.create("+a"))); assertNull(root.getContextNode(XDIArc.create("+a"))); root.setRelation(XDIAddress.create("+a"), XDIAddress.create("#b")); assertTrue(root.containsRelation(XDIAddress.create("+a"), XDIAddress.create("#b"))); assertNotNull(root.getRelation(XDIAddress.create("+a"), XDIAddress.create("#b"))); root.delRelation(XDIAddress.create("+a"), XDIAddress.create("#b")); assertFalse(root.containsRelation(XDIAddress.create("+a"), XDIAddress.create("#b"))); assertNull(root.getRelation(XDIAddress.create("+a"), XDIAddress.create("#b"))); root.setDeepContextNode(XDIAddress.create("<#a>")).setLiteralNode("a"); assertTrue(root.getDeepContextNode(XDIAddress.create("<#a>")).containsLiteralNode("a")); assertNotNull(root.getDeepContextNode(XDIAddress.create("<#a>")).getLiteralNode("a")); assertNotNull(root.getDeepLiteralNode(XDIAddress.create("<#a>&"))); root.getDeepContextNode(XDIAddress.create("<#a>")).delLiteralNode(); assertFalse(root.getDeepContextNode(XDIAddress.create("<#a>")).containsLiteralNode("a")); assertNull(root.getDeepContextNode(XDIAddress.create("<#a>")).getLiteralNode("a")); assertNull(root.getDeepLiteralNode(XDIAddress.create("<#a>&"))); root.getContextNode(XDIArc.create("#b")).delete(); root.getDeepContextNode(XDIAddress.create("<#a>")).delete(); assertTrue(root.isEmpty()); graph26.close(); }
assertNull(markus.getLiteralNode()); assertFalse(markus.getContextNodes().hasNext()); try { markus.getContextNodes().next(); fail(); } catch (NoSuchElementException ex) { } assertNull(markus.getContextNode(XDIArc.create("*not"))); assertNull(markus.getDeepContextNode(XDIAddress.create("*not"))); assertFalse(markus.getAllContextNodes().hasNext()); try { markus.getAllContextNodes().next(); fail(); } catch (NoSuchElementException ex) { } assertFalse(markus.getAllLeafContextNodes().hasNext()); try { markus.getAllLeafContextNodes().next(); fail(); } catch (NoSuchElementException ex) { } assertEquals(markus.getContextNodeCount(), 0); assertEquals(markus.getAllContextNodeCount(), 0); assertNull(markus.getRelation(XDIAddress.create("+not"), XDIAddress.create("=not"))); assertNull(markus.getRelation(XDIAddress.create("+not"))); assertFalse(markus.getRelations(XDIAddress.create("+not")).hasNext()); try { markus.getRelations(XDIAddress.create("+not")).next(); fail(); } catch (NoSuchElementException ex) { } assertFalse(markus.getRelations().hasNext()); try { markus.getRelations().next(); fail(); } catch (NoSuchElementException ex) { } try { markus.getIncomingRelations().next(); fail(); } catch (NoSuchElementException ex) { } assertFalse(markus.getAllRelations().hasNext()); try { markus.getAllRelations().next(); fail(); } catch (NoSuchElementException ex) { } assertEquals(markus.getRelationCount(XDIAddress.create("+not")), 0); assertEquals(markus.getRelationCount(), 0); assertEquals(markus.getAllRelationCount(), 0); assertNull(markus.getLiteralNode()); assertNull(markus.getDeepLiteralNode(XDIAddress.create("<*!not>&"))); assertEquals(markus.getAllLiteralCount(), 0);
list.add(new MappingContextNodeStatementIterator(orderedGraph.getRootContextNode(true).getAllContextNodes())); list.add(new MappingRelationStatementIterator(orderedGraph.getRootContextNode(true).getAllRelations())); list.add(new MappingLiteralNodeStatementIterator(orderedGraph.getRootContextNode(true).getAllLiteralNodes())); statements = graph.getRootContextNode(true).getAllStatements();
public void testIdentity() throws Exception { Graph graph = MemoryGraphFactory.getInstance().openGraph(); ContextNode contextNode = graph.getRootContextNode().setContextNode(XDIArc.create("=markus")); ContextNode identityContextNode = graph.getRootContextNode().setDeepContextNode(XDIAddress.create("=pseudo")); // test $is Equivalence.setIdentityContextNode(contextNode, identityContextNode); assertEquals(Equivalence.getIdentityContextNodes(contextNode).next(), identityContextNode); assertEquals(Equivalence.getIncomingIdentityContextNodes(identityContextNode).next(), contextNode); assertEquals(Equivalence.getIdentityRelations(contextNode).next(), contextNode.getRelation(XDIDictionaryConstants.XDI_ADD_IS)); assertEquals(Equivalence.getIncomingIdentityRelations(identityContextNode).next(), contextNode.getRelation(XDIDictionaryConstants.XDI_ADD_IS)); Equivalence.getIdentityContextNodes(contextNode).next().delete(); // done assertTrue(contextNode.isEmpty()); assertTrue(identityContextNode.isEmpty()); contextNode.delete(); assertTrue(graph.isEmpty()); graph.close(); }
public void testDeleteDeep() throws Exception { Graph graph12 = this.getGraphFactory().openGraph(this.getClass().getName() + "-graph-12"); assertEquals(graph12.getRootContextNode(), graph12.getDeepContextNode(XDIConstants.XDI_ADD_ROOT)); assertEquals(graph12.getRootContextNode().getXDIAddress(), XDIConstants.XDI_ADD_ROOT); graph12.setDeepContextNode(XDIAddress.create("=markus")).setRelation(XDIAddress.create("#friend"), XDIAddress.create("=someone")); graph12.getDeepContextNode(XDIAddress.create("=markus")).delete(); graph12.setDeepContextNode(XDIAddress.create("=markus")); assertNull(graph12.getDeepContextNode(XDIAddress.create("=markus")).getRelation(XDIAddress.create("#friend"))); graph12.close(); }
@SuppressWarnings("unused") private static void makeGraph(Graph graph) throws Exception { ContextNode rootContextNode = graph.getRootContextNode(); ContextNode abcContextNode = rootContextNode.setContextNode(XDIArc.create("=abc")); ContextNode abcPassportContextNode = abcContextNode.setContextNode(XDIArc.create("[#passport]")); ContextNode abcPassport1ContextNode = abcPassportContextNode.setContextNode(XDIArc.create("*!:uuid:1111")); ContextNode abcPassport2ContextNode = abcPassportContextNode.setContextNode(XDIArc.create("*!:uuid:2222")); ContextNode abcPassportVContextNode = abcPassportContextNode.setContextNode(XDIArc.create("[$v]")); ContextNode abcPassportCContextNode = abcPassportContextNode.setContextNode(XDIArc.create("[$o]")); ContextNode abcPassportV1ContextNode = abcPassportVContextNode.setContextNode(XDIArc.create("*!:uuid:1111")); ContextNode abcPassportV2ContextNode = abcPassportVContextNode.setContextNode(XDIArc.create("*!:uuid:2222")); Relation abcPassportV2RelationDollar = abcPassportV2ContextNode.setRelation(XDIAddress.create("$"), XDIAddress.create("=abc[#passport]")); LiteralNode abcPassport1NumberLiteral = abcPassport1ContextNode.setDeepContextNode(XDIAddress.create("<#number>")).setLiteralNode("987654321"); LiteralNode abcPassport1CountryLiteral = abcPassport1ContextNode.setDeepContextNode(XDIAddress.create("<#country>")).setLiteralNode("Canada"); LiteralNode abcPassport1DLiteral = abcPassport1ContextNode.setDeepContextNode(XDIAddress.create("<$t>")).setLiteralNode("2005-01-01T00:00:00Z"); LiteralNode abcPassport2NumberLiteral = abcPassport2ContextNode.setDeepContextNode(XDIAddress.create("<#number>")).setLiteralNode("123456789"); LiteralNode abcPassport2CountryLiteral = abcPassport2ContextNode.setDeepContextNode(XDIAddress.create("<#country>")).setLiteralNode("New Zealand"); LiteralNode abcPassport2DLiteral = abcPassport2ContextNode.setDeepContextNode(XDIAddress.create("<$t>")).setLiteralNode("2010-10-01T00:00:00Z"); ContextNode abcPassportC1ContextNode = abcPassportCContextNode.setContextNode(XDIArc.create("*!:uuid:1111")); ContextNode abcPassportC2ContextNode = abcPassportCContextNode.setContextNode(XDIArc.create("*!:uuid:2222")); LiteralNode abcPassportC1DLiteral = abcPassportC1ContextNode.setDeepContextNode(XDIAddress.create("<$t>")).setLiteralNode("2010-11-11T11:11:11Z"); LiteralNode abcPassportC2DLiteral = abcPassportC2ContextNode.setDeepContextNode(XDIAddress.create("<$t>")).setLiteralNode("2010-12-22T22:22:22Z"); Relation abcPassportRelationV = abcPassportContextNode.setRelation(XDIAddress.create("[$v]"), XDIAddress.create("=abc[#passport][$v]*!:uuid:2222")); Relation abcPassportRelation1 = abcPassportContextNode.setRelation(XDIAddress.create("@~1"), abcPassport1ContextNode); Relation abcPassportRelation2 = abcPassportContextNode.setRelation(XDIAddress.create("@~2"), abcPassport2ContextNode); Relation abcTestRelation1 = abcContextNode.setRelation(XDIAddress.create("#rel"), abcPassport1ContextNode); Relation abcTestRelation2 = abcContextNode.setRelation(XDIAddress.create("#rel"), abcPassport2ContextNode); }
public void testCreate() throws Exception { Graph graph24 = this.getGraphFactory().openGraph(this.getClass().getName() + "-graph-24"); ContextNode root = graph24.getRootContextNode(); root.setContextNode(XDIArc.create("+a")); assertNotNull(root.getContextNode(XDIArc.create("+a"))); assertNotNull(root.getDeepContextNode(XDIAddress.create("+a"))); assertNotNull(graph24.getDeepContextNode(XDIAddress.create("+a"))); root.setContextNode(XDIArc.create("+a")); root.setDeepContextNode(XDIAddress.create("+a")); graph24.setDeepContextNode(XDIAddress.create("+a")); root.setDeepContextNode(XDIAddress.create("+a+b")); assertNotNull(root.getContextNode(XDIArc.create("+a")).getContextNode(XDIArc.create("+b"))); assertNotNull(root.getDeepContextNode(XDIAddress.create("+a+b"))); assertNotNull(graph24.getDeepContextNode(XDIAddress.create("+a+b"))); root.setContextNode(XDIArc.create("+a")); root.setDeepContextNode(XDIAddress.create("+a")); root.setDeepContextNode(XDIAddress.create("+a+b")); graph24.setDeepContextNode(XDIAddress.create("+a")); graph24.setDeepContextNode(XDIAddress.create("+a+b")); graph24.close(); }
@Override public ReadOnlyIterator<Relation> getDeepRelations(XDIAddress relativeContextNodeXDIAddress, XDIAddress XDIaddress) { ContextNode contextNode = this.getDeepContextNode(relativeContextNodeXDIAddress); if (contextNode == null) return null; return contextNode.getRelations(XDIaddress); }
public void clearAfterEncrypt() { for (ContextNode contextNode : this.getBaseContextNode().getContextNodes()) { XdiAttribute xdiAttribute = XdiAbstractAttribute.fromContextNode(contextNode); if (Encryption.isValid(xdiAttribute)) continue; contextNode.delete(); } this.getBaseContextNode().delRelations(); this.getBaseContextNode().delLiteralNode(); }
@Override public XdiPeerRoot getPeerRoot(XDIArc peerRootXDIArc, boolean create) { if (log.isTraceEnabled()) log.trace("getPeerRoot(" + peerRootXDIArc + "," + create + ")"); ContextNode peerRootContextNode = create ? this.getContextNode().setContextNode(peerRootXDIArc) : this.getContextNode().getContextNode(peerRootXDIArc, false); if (peerRootContextNode == null) return null; return XdiPeerRoot.fromContextNode(peerRootContextNode); }
public XdiPeerRoot setSelfPeerRoot(XDIAddress XDIaddress) { XdiPeerRoot selfPeerRoot = this.getSelfPeerRoot(); if (selfPeerRoot != null) selfPeerRoot.getContextNode().delete(); if (XDIaddress == null) return null; selfPeerRoot = this.getPeerRoot(XDIaddress, true); ContextNode commonRootContextNode = this.getContextNode(); ContextNode selfPeerRootContextNode = selfPeerRoot.getContextNode(); commonRootContextNode.delRelations(XDIDictionaryConstants.XDI_ADD_IS_REF); commonRootContextNode.setRelation(XDIDictionaryConstants.XDI_ADD_IS_REF, selfPeerRootContextNode); selfPeerRootContextNode.delRelations(XDIDictionaryConstants.XDI_ADD_REF); selfPeerRootContextNode.setRelation(XDIDictionaryConstants.XDI_ADD_REF, commonRootContextNode); return selfPeerRoot; }
private static void assertEqualsGraphs(Graph graph1, Graph graph2) throws Exception { assertEquals(graph1.getRootContextNode().getAllStatementCount(), graph2.getRootContextNode().getAllStatementCount()); assertEquals(graph1.getRootContextNode().getAllContextNodeCount(), graph2.getRootContextNode().getAllContextNodeCount()); assertEquals(graph1.getRootContextNode().getAllRelationCount(), graph2.getRootContextNode().getAllRelationCount()); assertEquals(graph1.getRootContextNode().getAllLiteralCount(), graph2.getRootContextNode().getAllLiteralCount()); Iterator<Statement> s1 = graph1.getRootContextNode().getAllStatements(); Iterator<Statement> s2 = graph2.getRootContextNode().getAllStatements(); while (s1.hasNext()) { XDIStatement s = s1.next().getXDIStatement(); assertTrue(s.toString(), graph2.containsStatement(s)); } while (s2.hasNext()) { XDIStatement s = s2.next().getXDIStatement(); assertTrue(s.toString(), graph1.containsStatement(s)); } assertEquals(graph1, graph2); }
@Override public Iterator<ContextNode> descend(ContextNode contextNode) { return contextNode.getAllContextNodes(); } };