private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException { // Read in any hidden serialization magic s.defaultReadObject(); // Read in size int size = s.readInt(); // Read in all elements for (int i = 0; i < size; i++) { add((Statement) s.readObject()); } }
private void resetChangeModel() { added.clear(); removed.clear(); added.put(explicitAdd, new MemoryOverflowModel()); removed.put(explicitRemove, new MemoryOverflowModel()); }
public MemoryOverflowModel(Map<String, String> namespaces, Collection<? extends Statement> c) { this(namespaces); addAll(c); }
public boolean add(Resource subj, URI pred, Value obj, Resource... contexts) { checkMemoryOverflow(); return getDelegate().add(subj, pred, obj, contexts); }
public boolean clear(Value... contexts) { return getDelegate().clear(contexts); }
if (!excluded.isEmpty()) { final MemoryOverflowModel set; set = new MemoryOverflowModel(excluded); result = new FilterIteration<Statement, SailException>( result) { set = new MemoryOverflowModel(included); final Iterator<Statement> iter = set.iterator(); CloseableIteration<Statement, SailException> incl; incl = new CloseableIteratorIteration<Statement, SailException>(
@Override public synchronized void rollback() throws SailException { trx = null; metadata.clear(); revised.clear(); modified.clear(); arch.clear(); super.rollback(); }
protected boolean accept(Statement stmt) throws SailException { return !set.contains(stmt); } };
private Repository createRepository() throws IOException, RepositoryException { File dir = createTempDir("model"); SailRepository repo = new SailRepository(new NativeStore(dir, "spoc,pocs,oscp,cspo")); repo.initialize(); return repo; }
private synchronized void overflowToDisk() { try { assert disk == null; repository = createRepository(); connection = repository.getConnection(); connection.setAutoCommit(false);
public boolean contains(Value subj, Value pred, Value obj, Value... contexts) { return getDelegate().contains(subj, pred, obj, contexts); }
metadata.clear(); revised.clear(); modified.clear();
public void removeLater(Statement st) { getAddedModel().remove(st); removed.get(this).add(st); }
public boolean remove(Value subj, Value pred, Value obj, Value... contexts) { return getDelegate().remove(subj, pred, obj, contexts); }
private RemoveOperation createDeleteOperation(UpdateExpr updateExpr, Dataset dataset, BindingSet bindings) { RemoveOperation op = new RemoveOperation(updateExpr, dataset, bindings) { public void removeLater(Statement st) { getAddedModel().remove(st); removed.get(this).add(st); } public void removeNow(Resource subj, URI pred, Value obj, Resource... contexts) throws SailException { delegate.removeStatements(subj, pred, obj, contexts); } }; if (removed.containsKey(op)) { for (RemoveOperation key : removed.keySet()) { if (key.equals(op)) return key; } } else { removed.put(op, new MemoryOverflowModel()); } return op; }
private URI getTrx() throws SailException { if (trx == null) { trx = sail.nextTransaction(); synchronized (metadata) { for (Statement st : metadata) { storeStatement(st.getSubject(), st.getPredicate(), st .getObject(), st.getContext()); } metadata.clear(); } } return trx; }
public MemoryOverflowModel(Model model) { this(model.getNamespaces()); addAll(model); }
public void removeLater(Statement st) { getAddedModel().remove(st); removed.get(this).add(st); }
public int size() { return getDelegate().size(); }
private AddOperation createInsertOperation(UpdateExpr updateExpr, Dataset dataset, BindingSet bindings) { AddOperation op = new AddOperation(updateExpr, dataset, bindings) { public void addLater(Resource subj, URI pred, Value obj, Resource... contexts) { Resource[] ctxs = notNull(contexts); if (ctxs.length == 0) { ctxs = new Resource[] { null }; } getRemovedModel().remove(subj, pred, obj, ctxs); added.get(this).add(subj, pred, obj, contexts); } public void addNow(Resource subj, URI pred, Value obj, Resource... contexts) throws SailException { delegate.addStatement(subj, pred, obj, contexts); } }; if (added.containsKey(op)) { for (AddOperation key : added.keySet()) { if (key.equals(op)) return key; } } else { added.put(op, new MemoryOverflowModel()); } return op; }