protected <T> FutureObject<T> saveAsync(T object) { return r.async().save(object); }
public void destroy() { for (Work work : works) { async.destroy(work.getId()); } }
private void putSinkMarkerOnCache(IdRef<SinkMarker> sinkMarkerId) { FutureObject<SinkMarker> futureSinkMarker = async.fetch(sinkMarkerId); sinkMarkerCache.put(sinkMarkerId, futureSinkMarker); }
@Override public AsyncRepository async() { return new AsyncRepository(this); }
private void commitIfChanged() { if (sinksToSave.isEmpty()) { r.rollback(); return; } for (IdRef<SinkMarker> id : sinkMarkersToSave) { async.save(getSinkMarkerFromCache(id)); } for (IdRef<?> sinkId : sinksToSave) { logSave(sinkId); // TODO: support pipes at async repository operations r.save(sinkCache.get(sinkId)); } // TODO: destroy empty sinks? r.commit(); }
@Test(expected = NoResultException.class) public void testDestroy() { IdRef<BasicObject> id = id(BasicObject.class, 1l); BasicObject object = new BasicObject(); object.setId(id); yawp.save(object); FutureObject<Void> future = yawp.async().destroy(id); future.get(); id.fetch(); }
@Test public void testFetch() { IdRef<BasicObject> id = id(BasicObject.class, 1l); BasicObject object = new BasicObject("xpto"); object.setId(id); yawp.save(object); FutureObject<BasicObject> future = yawp.async().fetch(id); BasicObject retrievedObject = future.get(); assertEquals("xpto", retrievedObject.getStringValue()); } }
@Test public void testSaveParallel() { BasicObject object1 = new BasicObject("xpto1"); BasicObject object2 = new BasicObject("xpto2"); FutureObject<BasicObject> future1 = yawp.async().save(object1); FutureObject<BasicObject> future2 = yawp.async().save(object2); assertEquals("xpto1", future1.get().getStringValue()); assertEquals("xpto2", future2.get().getStringValue()); }
@Test public void testSave() { BasicObject object = new BasicObject("xpto"); FutureObject<BasicObject> future = yawp.async().save(object); assertEquals("xpto", future.get().getStringValue()); }
@Test public void testAfterSaveHook() { HookedObject object = new HookedObject("after_save"); FutureObject<HookedObject> future = yawp.async().save(object); assertEquals("after_save", object.getStringValue()); assertEquals("xpto after save", future.get().getStringValue()); }
@Test public void testBeforeSaveHook() { HookedObject object = new HookedObject("before_save"); FutureObject<HookedObject> future = yawp.async().save(object); assertEquals("xpto before save", object.getStringValue()); assertEquals("xpto before save", future.get().getStringValue()); }