@Override public ContextNodeStatement map(ContextNode contextNode) { return contextNode.getStatement(); } }
@Override public Statement getStatement(XDIStatement XDIstatement) { return this.getRootContextNode(false).getStatement(XDIstatement); }
@Override public Iterator<Statement> descend(ContextNode contextNode) { List<Iterator<? extends Statement>> list = new ArrayList<Iterator<? extends Statement>> (); list.add(new SingleItemIterator<Statement> (contextNode.getStatement())); list.add(contextNode.getAllStatements()); return new CompositeIterator<Statement> (list.iterator()); } };
public void delPermissionTargetXDIStatement(XDIAddress permissionXDIAddress, XDIStatement targetXDIStatement) { if (permissionXDIAddress == null || targetXDIStatement == null) throw new NullPointerException(); // delete the permission statement XdiInnerRoot xdiInnerRoot = this.getPermissionsXdiEntity().getXdiInnerRoot(permissionXDIAddress, false); if (xdiInnerRoot == null) return; Statement statement = xdiInnerRoot.getContextNode().getStatement(targetXDIStatement); if (statement == null) return; statement.delete(); }
@Override public void executeGetOnContextNodeStatement(XDIStatement contextNodeStatement, GetOperation operation, Graph operationResultGraph, ExecutionContext executionContext) throws Xdi2MessagingException { XDIAddress targetXDIAddress = contextNodeStatement.getTargetXDIAddress(); ContextNode contextNode = this.getGraph().getDeepContextNode(targetXDIAddress, false); if (contextNode == null) return; CopyUtil.copyStatement(contextNode.getStatement(), operationResultGraph, null); }
if (! writeImplied && innerContextNode.getStatement().isImplied() && innerContextNode.isEmpty()) continue;
if (! this.isWriteImplied() && attributeContextNode.getStatement().isImplied() && attributeJsonObject.entrySet().isEmpty()) {
private static boolean includeContextNode(ContextNode contextNode) { if (! contextNode.getStatement().isImplied()) return true; if (XdiInnerRoot.fromContextNode(contextNode) != null) return false; for (Relation relation : contextNode.getAllRelations()) { XdiInnerRoot xdiInnerRoot = XdiInnerRoot.fromRelation(relation); if (xdiInnerRoot != null && xdiInnerRoot.getSubjectContextNode() == relation.getContextNode() && xdiInnerRoot.getPredicateRelation() == relation) { if (! allStatementsImplied(xdiInnerRoot.getContextNode())) return true; } } if (! allStatementsImplied(contextNode)) return true; //if (contextNode.getAllLiterals().hasNext()) return true; //if (contextNode.getAllRelations().hasNext()) return true; /* if (contextNode.isEmpty() && contextNode.containsIncomingRelations()) return false; if (XdiInnerRoot.isValid(contextNode)) return false;*/ return false; /* if (contextNode.containsLiteralNode()) return true; if (contextNode.containsRelations()) return true; if (contextNode.containsIncomingRelations()) return false; for (ContextNode childContextNode : contextNode.getContextNodes()) { if (includeContextNode(childContextNode)) return true; } if (contextNode.containsContextNodes()) return false; return false;*/ }
public void testImplied() throws Exception { Graph graph21 = this.getGraphFactory().openGraph(this.getClass().getName() + "-graph-21"); ContextNode webmarkus = graph21.setDeepContextNode(XDIAddress.create("=web=markus")); ContextNode animesh = graph21.setDeepContextNode(XDIAddress.create("=animesh")); Relation friend = webmarkus.setRelation(XDIAddress.create("#friend"), animesh); ContextNode value = webmarkus.setContextNode(XDIArc.create("<#name>")); LiteralNode name = value.setLiteralNode("Markus Sabadello"); ContextNode web = webmarkus.getContextNode(); assertTrue(webmarkus.getStatement().isImplied()); assertTrue(animesh.getStatement().isImplied()); assertFalse(friend.getStatement().isImplied()); assertTrue(value.getStatement().isImplied()); assertFalse(name.getStatement().isImplied()); assertTrue(web.getStatement().isImplied()); graph21.close(); }
if (! this.isWriteImplied() && entityContextNode.getStatement().isImplied() && entityJsonObject.entrySet().isEmpty()) {
@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; }
if (! this.isWriteImplied() && rootContextNode.getStatement().isImplied() && rootJsonObject.entrySet().isEmpty()) {
@Override public Statement setStatement(XDIStatement statement) { // set the statement if (statement.isContextNodeStatement()) { ContextNode contextNode = (ContextNode) this.setDeepNode(statement.getTargetXDIAddress()); return contextNode.getStatement(); } else if (statement.isRelationStatement()) { ContextNode contextNode = (ContextNode) this.setDeepNode(statement.getContextNodeXDIAddress()); Relation relation = contextNode.setRelation(statement.getRelationXDIAddress(), statement.getTargetXDIAddress()); return relation.getStatement(); } else if (statement.isLiteralStatement()) { ContextNode contextNode = (ContextNode) this.setDeepNode(statement.getContextNodeXDIAddress()); LiteralNode literalNode = contextNode.setLiteralNode(statement.getLiteralData()); return literalNode.getStatement(); } else { throw new Xdi2GraphException("Invalid statement: " + statement); } }