@Override public void executeGetOnAddress(XDIAddress targetXDIAddress, GetOperation operation, Graph operationResultGraph, ExecutionContext executionContext) throws Xdi2MessagingException { Node node = this.getGraph().getDeepNode(targetXDIAddress, true); if (node == null) return; if (node instanceof ContextNode) { CopyUtil.copyContextNode((ContextNode) node, operationResultGraph, null); } else if (node instanceof LiteralNode) { CopyUtil.copyLiteralNode((LiteralNode) node, operationResultGraph, null); } }
@Override public Node follow() { XDIAddress targetXDIAddress = this.getTargetXDIAddress(); ContextNode targetContextNode = (ContextNode) this.getGraph().getDeepNode(targetXDIAddress.getContextNodeXDIAddress(), false); if (targetContextNode == null) { if (log.isWarnEnabled()) log.warn("Relation points to non-existent target node " + targetXDIAddress); return null; } if (targetXDIAddress.isLiteralNodeXDIAddress()) { return targetContextNode.getLiteralNode(); } else { return targetContextNode; } }
/** * Factory method that finds or creates an XDI link contract template for a graph. * @return The XDI link contract template. */ public static LinkContractTemplate findLinkContractTemplate(Graph graph, XDIAddress templateAuthorityAndId, boolean create) { XDIAddress linkContractTemplateXDIAddress = createLinkContractTemplateXDIAddress(templateAuthorityAndId); ContextNode linkContractTemplateContextNode = create ? (ContextNode) graph.setDeepNode(linkContractTemplateXDIAddress) : (ContextNode) graph.getDeepNode(linkContractTemplateXDIAddress, true); if (linkContractTemplateContextNode == null) return null; return new LinkContractTemplate(XdiEntitySingleton.Variable.fromContextNode(linkContractTemplateContextNode)); }
/** * When a relation is deleted, its inner root has to be deleted too. */ protected void delRelationDelInnerRoot(XDIAddress XDIaddress, XDIAddress targetXDIAddress) { XdiContext<?> xdiContext = XdiAbstractContext.fromContextNode(this); XdiInnerRoot xdiInnerRoot = xdiContext.getXdiInnerRoot(XDIaddress, false); if (xdiInnerRoot == null) return; if (xdiInnerRoot.getXDIAddress().equals(targetXDIAddress)) { this.getGraph().getDeepNode(targetXDIAddress, false).delete(); } }
Node tempNode = tempResultGraph.getDeepNode(tempNodeXDIAddress, true);
Node tempNode = tempResultGraph.getDeepNode(tempNodeXDIAddress, true);
Node referenceNode = referenceGraph.getDeepNode(target); CopyUtil.copyNode(referenceNode, tempGraph, null);