@Override public Iterator<Tuple<NodeId>> findAsNodeIds(Node... nodes) { return nodeTupleTable.findAsNodeIds(nodes) ; }
@Override public Iterator<Tuple<NodeId>> findAsNodeIds(Node... nodes) { nodes = push(Node.class, prefix, nodes) ; return nodeTupleTable.findAsNodeIds(nodes) ; }
iter = t.findAsNodeIds(s, p, o) ; else iter = t.findAsNodeIds(g, s, p, o) ;
@Override // Empty graphs don't "exist" public boolean containsGraph(Node graphNode) { if ( Quad.isDefaultGraph(graphNode) || Quad.isUnionGraph(graphNode) ) return true ; // Have to look explicitly, which is a bit of a nuisance. // But does not normally happen for GRAPH <g> because that's rewritten to quads. // Only pattern with complex paths go via GRAPH. Iterator<Tuple<NodeId>> x = quadTable.getNodeTupleTable().findAsNodeIds(graphNode, null, null, null) ; if ( x == null ) return false ; // NodeId graphNodeId = quadTable.getNodeTupleTable().getNodeTable().getNodeIdForNode(graphNode) ; // Tuple<NodeId> pattern = Tuple.create(graphNodeId, null, null, null) ; // Iterator<Tuple<NodeId>> x = quadTable.getNodeTupleTable().getTupleTable().find(pattern) ; boolean result = x.hasNext() ; return result ; }
/** Find matching triples */ public Iterator<Triple> find(Node s, Node p, Node o) { Iterator<Tuple<NodeId>> iter = table.findAsNodeIds(s, p, o) ; if ( iter == null ) return new NullIterator<>() ; Iterator<Triple> iter2 = TupleLib.convertToTriples(table.getNodeTable(), iter) ; return iter2 ; }
/** Find matching quads */ public Iterator<Quad> find(Node g, Node s, Node p, Node o) { Iterator<Tuple<NodeId>> iter = table.findAsNodeIds(g, s, p, o) ; if ( iter == null ) return new NullIterator<>() ; Iterator<Quad> iter2 = TupleLib.convertToQuads(table.getNodeTable(), iter) ; return iter2 ; }
@Override protected final int graphBaseSize() { if ( isDefaultGraph() ) return (int)getNodeTupleTable().size() ; Node gn = getGraphName() ; boolean unionGraph = isUnionGraph(gn) ; gn = unionGraph ? Node.ANY : gn ; QuadTable quadTable = getDatasetGraphTDB().getQuadTable() ; Iterator<Tuple<NodeId>> iter = quadTable.getNodeTupleTable().findAsNodeIds(gn, null, null, null) ; if ( unionGraph ) { iter = Iter.map(iter, project4TupleTo3Tuple) ; iter = Iter.distinctAdjacent(iter) ; } return (int)Iter.count(iter) ; }