@Override public void delContextNodes() { for (ContextNode contextNode : this.getContextNodes()) contextNode.delete(); }
public void delPermissionTargetXDIStatements(XDIAddress permissionXDIAddress) { if (permissionXDIAddress == null) throw new NullPointerException(); // delete the permission statements XdiInnerRoot xdiInnerRoot = this.getPermissionsXdiEntity().getXdiInnerRoot(permissionXDIAddress, false); if (xdiInnerRoot == null) return; xdiInnerRoot.getContextNode().delete(); }
public void clearAfterDecrypt() { for (ContextNode contextNode : this.getBaseContextNode().getContextNodes()) { XdiAttribute xdiAttribute = XdiAbstractAttribute.fromContextNode(contextNode); if (! Encryption.isValid(xdiAttribute)) continue; contextNode.delete(); } }
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; } }
/** * Deletes all message collections from this message envelope. */ public void deleteMessageCollections() { for (MessageCollection messageCollection : new IteratorListMaker<MessageCollection> (this.getMessageCollections()).list()) { messageCollection.getContextNode().delete(); } }
@Override public InterceptorResult after(Message message, ExecutionContext executionContext, ExecutionResult executionResult) throws Xdi2MessagingException { // read the referenced link contract from the execution context LinkContract linkContract = getLinkContract(executionContext); if (linkContract == null) throw new Xdi2MessagingException("No link contract.", null, executionContext); // evaluate the XDI delete policy against this message PolicyRoot deletePolicyRoot = linkContract.getDeletePolicyRoot(false); boolean deletePolicyRootResult = deletePolicyRoot == null ? false : this.evaluatePolicyRoot(message, deletePolicyRoot, executionContext); if (deletePolicyRoot != null) if (log.isDebugEnabled()) log.debug("Link contract " + linkContract + " delete policy evaluated to " + deletePolicyRootResult); if (deletePolicyRootResult) { linkContract.getContextNode().delete(); putEvaluationResult(executionContext, XDIPolicyConstants.XDI_ADD_DEL); return InterceptorResult.DEFAULT; } // done return InterceptorResult.DEFAULT; }
/** * Deletes all messages from this message collection. */ public void deleteMessages() { for (Message message : new IteratorListMaker<Message> (this.getMessages()).list()) { message.getContextNode().delIncomingRelations(); message.getContextNode().delete(); } }
/** * Deletes all operations from this message. */ public void deleteOperations() { for (Operation operation : new IteratorListMaker<Operation> (this.getOperations()).list()) { XdiInnerRoot targetInnerRoot = operation.getTargetXdiInnerRoot(); if (targetInnerRoot != null) { targetInnerRoot.getContextNode().delete(); } else { operation.getRelation().delete(); } } }
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(); }
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; }
public void setDID(DID did) { if (did.equals(this.getDID())) return; ContextNode newContextNode = this.getContextNode().getGraph().setDeepContextNode(did.getXDIAddress()); CopyUtil.copyContextNodeContents(this.getContextNode(), newContextNode, null); this.getContextNode().delete(); this.xdiEntity = XdiAbstractEntity.fromContextNode(newContextNode); }
private void processConnect(LinkContractTemplate linkContractTemplate, ConnectOperation operation, Graph operationResultGraph, ExecutionContext executionContext) throws Xdi2MessagingException { if (log.isDebugEnabled()) log.debug("Preparing to instantiate link contract template " + linkContractTemplate); // set variable values Map<XDIArc, Object> variableValues = operation.getVariableValues(); variableValues.put(XDILinkContractConstants.XDI_ARC_V_FROM, operation.getMessage().getSenderXDIAddress()); variableValues.put(XDILinkContractConstants.XDI_ARC_V_TO, executionContext.getCurrentMessagingContainer().getOwnerXDIAddress()); // instantiate link contract LinkContractInstantiation linkContractInstantiation = new LinkContractInstantiation(linkContractTemplate); linkContractInstantiation.setVariableValues(variableValues); LinkContract linkContract; try { linkContract = linkContractInstantiation.execute(); } catch (Exception ex) { throw new Xdi2MessagingException("Cannot instantiate link contract: " + ex.getMessage(), ex, executionContext); } // write link contract and index into operation result graph CopyUtil.copyGraph(linkContract.getContextNode().getGraph(), operationResultGraph, null); // first delete link contract in target graph if it exists already ContextNode linkContractContextNode = this.getTargetGraph(executionContext).getDeepContextNode(linkContract.getContextNode().getXDIAddress()); if (linkContractContextNode != null) linkContractContextNode.delete(); // write link contract and index into target graph if (this.getTargetGraph(executionContext) != null) { CopyUtil.copyGraph(linkContract.getContextNode().getGraph(), this.getTargetGraph(executionContext), null); XdiEntityCollection xdiLinkContractIndex = Index.getEntityIndex(this.getTargetGraph(executionContext), XDILinkContractConstants.XDI_ARC_CONTRACT, true); Index.setEntityIndexAggregation(xdiLinkContractIndex, linkContract.getXdiEntity()); } }
public void testDeleteCyclicRelation() throws Exception { Graph graph31 = this.getGraphFactory().openGraph(this.getClass().getName() + "-graph-31"); graph31.setStatement(XDIStatement.create("=a=b=c=d=e/+x/=a=b=c")); graph31.setStatement(XDIStatement.create("=m=n=o/+y/=a=b=c=d")); graph31.getDeepContextNode(XDIAddress.create("=a=b")).delete(); assertEquals(graph31.getRootContextNode().getAllContextNodeCount(), 4); assertEquals(graph31.getRootContextNode().getAllRelationCount(), 0); assertEquals(graph31.getRootContextNode().getAllStatementCount(), 4); graph31.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(); }
public void testIllegalarcs() throws Exception { Graph graph20 = this.getGraphFactory().openGraph(this.getClass().getName() + "-graph-20"); ContextNode markus = graph20.setDeepContextNode(XDIAddress.create("=markus")); try { markus.setContextNode(XDIArc.create("")); fail(); } catch (Xdi2GraphException ex) { } try { markus.setRelation(XDIAddress.create(""), XDIAddress.create("=animesh")); fail(); } catch (Xdi2GraphException ex) { } try { markus.setRelation(XDIAddress.create("&"), XDIAddress.create("=animesh")); fail(); } catch (Xdi2GraphException ex) { } Equivalence.setReferenceContextNode(markus, XDIAddress.create("=!:uuid:1234")); // try { markus.setContextNode(XDIArc.create("<#email>")); fail(); } catch (Xdi2GraphException ex) { } // try { markus.setRelation(XDIAddress.create("#friend"), XDIAddress.create("=animesh")); fail(); } catch (Xdi2GraphException ex) { } // try { markus.setLiteralNode("hello"); fail(); } catch (Xdi2GraphException ex) { } Equivalence.getReferenceContextNode(markus).delete(); markus.setRelation(XDIAddress.create("#friend"), XDIAddress.create("=animesh")); // try { Equivalence.setReferenceContextNode(markus, XDIAddress.create("=!:uuid:1234")); fail(); } catch (Xdi2GraphException ex) { } graph20.close(); }
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(); }
assertEquals(Equivalence.getIncomingReferenceRelations(referenceContextNode).next(), contextNode.getRelation(XDIDictionaryConstants.XDI_ADD_REF)); Equivalence.getReferenceContextNode(contextNode).delete(); assertEquals(Equivalence.getIncomingReplacementRelations(replacementContextNode).next(), contextNode.getRelation(XDIDictionaryConstants.XDI_ADD_REP)); Equivalence.getReplacementContextNode(contextNode).delete(); assertTrue(referenceContextNode.isEmpty()); assertTrue(replacementContextNode.isEmpty()); contextNode.delete(); assertTrue(graph.isEmpty());
public void testDeleteContextNodesDeletesRelations() throws Exception { Graph graph27 = this.getGraphFactory().openGraph(this.getClass().getName() + "-graph-27"); Relation r1 = graph27.setDeepContextNode(XDIAddress.create("=animesh")).setRelation(XDIAddress.create("#friend"), XDIAddress.create("=markus")); Relation r2 = graph27.setDeepContextNode(XDIAddress.create("=markus")).setRelation(XDIAddress.create("#friend"), XDIAddress.create("=animesh")); ContextNode markus = (ContextNode) r1.follow(); ContextNode animesh = (ContextNode) r2.follow(); markus.delete(); assertNotNull(graph27.getDeepContextNode(XDIAddress.create("=animesh"))); assertFalse(graph27.getDeepContextNode(XDIAddress.create("=animesh")).getRelations().hasNext()); assertFalse(graph27.getDeepContextNode(XDIAddress.create("=animesh")).getRelations(XDIAddress.create("#friend")).hasNext()); assertEquals(graph27.getDeepContextNode(XDIAddress.create("=animesh")).getRelationCount(), 0); assertFalse(graph27.getDeepContextNode(XDIAddress.create("=animesh")).getIncomingRelations().hasNext()); assertFalse(graph27.getDeepContextNode(XDIAddress.create("=animesh")).getIncomingRelations(XDIAddress.create("#friend")).hasNext()); assertFalse(animesh.getRelations().hasNext()); assertFalse(animesh.getRelations(XDIAddress.create("#friend")).hasNext()); assertEquals(animesh.getRelationCount(), 0); assertFalse(animesh.getIncomingRelations().hasNext()); assertFalse(animesh.getIncomingRelations(XDIAddress.create("#friend")).hasNext()); animesh.delete(); graph27.setStatement(XDIStatement.create("+a+b/$i/=x")); graph27.setStatement(XDIStatement.create("=x/$i/=y")); graph27.getRootContextNode().getContextNode(XDIArc.create("+a")).delete(); assertEquals(graph27.getRootContextNode().getAllRelationCount(), 1); assertTrue(graph27.getRootContextNode().getContextNode(XDIArc.create("=x")).getRelations().hasNext()); assertFalse(graph27.getRootContextNode().getContextNode(XDIArc.create("=x")).getIncomingRelations().hasNext()); graph27.getRootContextNode().getContextNode(XDIArc.create("=x")).delete(); assertEquals(graph27.getRootContextNode().getAllRelationCount(), 0); graph27.close(); }
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(); }