@Override public Iterator<Quad> find() { return filter(super.find()); }
@Override public Iterator<Quad> findNG(Node g, Node s, Node p , Node o) { // union return filter(super.findNG(g, s, p, o)); }
@Override public void close() { get().close(); } }
/** * Called to isolate a dataset from it's storage. * Must be inside a transaction. */ private Dataset isolate(Dataset dataset) { switch(isolation) { case COPY: { DatasetGraph dsg2 = DatasetGraphFactory.create(); dataset.asDatasetGraph().find().forEachRemaining(q -> dsg2.add(q) ); return DatasetFactory.wrap(dsg2); } case READONLY : { DatasetGraph dsg = new DatasetGraphReadOnly(dataset.asDatasetGraph()); return DatasetFactory.wrap(dsg); } case NONE : return dataset; } throw new InternalErrorException(); }
@Override public String toString() { return "Filtered:\n"+super.toString(); }
/** * Called to isolate a dataset from it's storage. * Must be inside a transaction. */ private Dataset isolate(Dataset dataset) { switch(isolation) { case COPY: { DatasetGraph dsg2 = DatasetGraphFactory.create(); dataset.asDatasetGraph().find().forEachRemaining(q -> dsg2.add(q) ); return DatasetFactory.wrap(dsg2); } case READONLY : { DatasetGraph dsg = new DatasetGraphReadOnly(dataset.asDatasetGraph()); return DatasetFactory.wrap(dsg); } case NONE : return dataset; } throw new InternalErrorException(); }
@Override public Iterator<Quad> find(Quad quad) { // union return filter(super.find(quad)); }
@Override public Graph getGraph(Node graphNode) { Graph g = get().getGraph(graphNode); if ( g == null ) return null; g = new GraphReadOnly(g); return g; }
@Override public Iterator<Quad> find(Node g, Node s, Node p, Node o) { // Need union handling if for general API use. return filter(super.find(g, s, p, o)); }
@Override public void begin(ReadWrite mode) { if ( mode == ReadWrite.WRITE ) //throw new JenaTransactionException("read-only dataset : no write transactions"); Log.warn(this, "Write transaction on a read-only dataset"); get().begin(mode); }
@Override public boolean contains(Quad quad) { return filter(super.find(quad)).hasNext(); }
@Override public boolean contains(Node g, Node s, Node p , Node o) { return filter(super.find(g, s, p, o)).hasNext(); }