public static Relation getReferenceRelation(ContextNode contextNode) { return contextNode.getRelation(XDIDictionaryConstants.XDI_ADD_REF); }
public static Relation getReplacementRelation(ContextNode contextNode) { return contextNode.getRelation(XDIDictionaryConstants.XDI_ADD_REP); }
@Override public Relation getDeepRelation(XDIAddress relativeContextNodeXDIAddress, XDIAddress XDIaddress, XDIAddress targetXDIAddress) { ContextNode contextNode = this.getDeepContextNode(relativeContextNodeXDIAddress); if (contextNode == null) return null; return contextNode.getRelation(XDIaddress, targetXDIAddress); }
/** * Get a $is# datatype associated with a context node * * @param contextNode * @return datatype */ public static XDIAddress getDataType(ContextNode contextNode) { Relation relation = contextNode.getRelation(XDIDictionaryConstants.XDI_ADD_IS_TYPE); return relation == null ? null : relation.getTargetXDIAddress(); }
@Override public Relation getDeepRelation(XDIAddress relativeContextNodeXDIAddress, XDIAddress XDIaddress) { ContextNode contextNode = this.getDeepContextNode(relativeContextNodeXDIAddress); if (contextNode == null) return null; return contextNode.getRelation(XDIaddress); }
public static XDIAddress getContextNodeType(ContextNode contextNode) { Relation contextNodeTypeRelation = contextNode.getRelation(XDIDictionaryConstants.XDI_ADD_IS_TYPE); if (contextNodeTypeRelation == null) return null; return contextNodeTypeRelation.getTargetXDIAddress(); }
public static ContextNode getAggregationContextNode(ContextNode contextNode) { Relation relation = contextNode.getRelation(XDIDictionaryConstants.XDI_ADD_HAS); return relation == null ? null : relation.followContextNode(); }
public static ContextNode getIdentityContextNode(ContextNode contextNode) { Relation relation = contextNode.getRelation(XDIDictionaryConstants.XDI_ADD_IS); return relation == null ? null : relation.followContextNode(); }
/** * Returns the link contract address. * @return The link contract address. */ public XDIAddress getLinkContractXDIAddress() { Relation linkContractRelation = this.getContextNode().getRelation(XDILinkContractConstants.XDI_ADD_CONTRACT); if (linkContractRelation == null) return null; return linkContractRelation.getTargetXDIAddress(); }
/** * Get this message (template)'s correlation to another message (template). */ public XDIAddress getCorrelationXDIAddress() { Relation relation = this.getContextNode().getRelation(XDIMessagingConstants.XDI_ADD_CORRELATION); if (relation == null) return null; return relation.getTargetXDIAddress(); }
public XdiPeerRoot getSelfPeerRoot() { Relation relation = this.getContextNode().getRelation(XDIDictionaryConstants.XDI_ADD_IS_REF); if (relation == null) return null; ContextNode targetContextNode = relation.followContextNode(); if (targetContextNode == null) return null; return XdiPeerRoot.fromContextNode(targetContextNode); } }
public DID getGuardian() { Relation guardianRelation = this.getContextNode().getRelation(XDI_ADD_GUARDIAN); if (guardianRelation == null) return null; XDIAddress guardianXDIAddress = guardianRelation.getTargetXDIAddress(); if (guardianXDIAddress == null) return null; return DID.fromXDIAddress(guardianXDIAddress); }
@Override public List<ContextNode> replaceContextNode(ContextNode contextNode) { Relation relation = contextNode.getRelation(XDIConstants.XDI_ADD_LITERAL_VARIABLE); if (relation == null) return null; XDIAddress targetXDIAddress = relation.getTargetXDIAddress(); if (targetXDIAddress.getNumXDIArcs() > 1) return null; Object replacement = this.replacements.get(targetXDIAddress.getFirstXDIArc()); ContextNode replacedContextNode = CloneUtil.cloneContextNode(contextNode); replacedContextNode.delRelations(XDIConstants.XDI_ADD_LITERAL_VARIABLE); replacedContextNode.delLiteralNode(); replacedContextNode.setLiteralNode(replacement); if (log.isTraceEnabled()) log.trace("Replaced " + targetXDIAddress + " with " + replacement); return Collections.singletonList(replacedContextNode); } }
/** * Returns the predicate relation of the XDI inner root context node. * @param contextNode An XDI inner root context node. * @return The predicate relation of the inner root context node. */ public static Relation getPredicateRelation(ContextNode contextNode) { XDIAddress predicate = XdiInnerRoot.getPredicateOfInnerRootXDIArc(contextNode.getXDIArc()); if (predicate == null || predicate.isLiteralNodeXDIAddress()) return null; ContextNode subjectContextNode = getSubjectContextNode(contextNode); if (subjectContextNode == null) return null; Relation predicateRelation = subjectContextNode.getRelation(predicate, contextNode.getXDIAddress()); if (predicateRelation == null) return null; return predicateRelation; }
/** * Return the TO peer root arc of the message (template). */ public XDIArc getToPeerRootXDIArc() { Relation toPeerRootXDIArcRelation = this.getContextNode().getRelation(XDIMessagingConstants.XDI_ADD_TO); if (toPeerRootXDIArcRelation == null) return null; XDIAddress toPeerRootXDIAddress = toPeerRootXDIArcRelation.getTargetXDIAddress(); if (toPeerRootXDIAddress.getNumXDIArcs() > 1 || ! XdiPeerRoot.isValidXDIArc(toPeerRootXDIAddress.getFirstXDIArc())) return null; return toPeerRootXDIAddress.getFirstXDIArc(); }
/** * Return the FROM peer root arc of the message (template). */ public XDIArc getFromPeerRootXDIArc() { Relation fromPeerRootXDIArcRelation = this.getContextNode().getRelation(XDIMessagingConstants.XDI_ADD_FROM); if (fromPeerRootXDIArcRelation == null) return null; XDIAddress fromPeerRootXDIAddress = fromPeerRootXDIArcRelation.getTargetXDIAddress(); if (fromPeerRootXDIAddress.getNumXDIArcs() > 1 || ! XdiPeerRoot.isValidXDIArc(fromPeerRootXDIAddress.getFirstXDIArc())) return null; return fromPeerRootXDIAddress.getFirstXDIArc(); }
@Override public Statement getStatement(XDIStatement statement) { ContextNode baseContextNode = this.getDeepContextNode(statement.getSubject(), false); if (baseContextNode == null) return null; if (statement.isContextNodeStatement()) { ContextNode contextNode = baseContextNode.getContextNode(statement.getContextNodeXDIArc(), false); return contextNode == null ? null : contextNode.getStatement(); } else if (statement.isRelationStatement()) { Relation relation = baseContextNode.getRelation(statement.getRelationXDIAddress(), statement.getTargetXDIAddress()); return relation == null ? null : relation.getStatement(); } else if (statement.isLiteralStatement()) { LiteralNode literalNode = baseContextNode.getLiteralNode(statement.getLiteralData()); return literalNode == null ? null : literalNode.getStatement(); } return null; }
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 testMessageEnvelope() throws Exception { Graph graph = this.openGraph(this.getClass().getName() + "-graph-me-1"); GraphMessagingContainer graphMessagingContainer = new GraphMessagingContainer(); graphMessagingContainer.setGraph(graph); graphMessagingContainer.init(); MessageEnvelope messageEnvelope1 = MessageEnvelope.fromOperationXDIAddressAndTargetXDIStatements(XDIMessagingConstants.XDI_ADD_SET, new SingleItemIterator<XDIStatement> (XDIStatement.create("=markus/#friend/=giovanni"))); ExecutionContext executionContext1 = ExecutionContext.createExecutionContext(); ExecutionResult executionResult1 = ExecutionResult.createExecutionResult(messageEnvelope1); graphMessagingContainer.execute(messageEnvelope1, executionContext1, executionResult1); MessageEnvelope messageEnvelope2 = MessageEnvelope.fromOperationXDIAddressAndTargetXDIAddress(XDIMessagingConstants.XDI_ADD_GET, XDIAddress.create("=markus")); ExecutionContext executionContext2 = ExecutionContext.createExecutionContext(); ExecutionResult executionResult2 = ExecutionResult.createExecutionResult(messageEnvelope2); graphMessagingContainer.execute(messageEnvelope2, executionContext2, executionResult2); assertEquals(executionResult2.makeLightMessagingResponse().getResultGraph().getDeepContextNode(XDIAddress.create("=markus")).getRelation(XDIAddress.create("#friend")).getTargetXDIAddress(), XDIAddress.create("=giovanni")); graphMessagingContainer.shutdown(); }
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(); }