public void update(long procId) { update(null, procId); }
public void insert(long procId, long[] subProcIds) { BitSetNode node = update(null, procId); for (int i = 0; i < subProcIds.length; ++i) { node = insert(node, subProcIds[i]); } }
private void updateStoreTracker(final PushType type, final long procId, final long[] subProcIds) { switch (type) { case INSERT: if (subProcIds == null) { storeTracker.insert(procId); } else if (procId == Procedure.NO_PROC_ID) { storeTracker.insert(subProcIds); } else { storeTracker.insert(procId, subProcIds); holdingCleanupTracker.setDeletedIfModified(procId); } break; case UPDATE: storeTracker.update(procId); holdingCleanupTracker.setDeletedIfModified(procId); break; case DELETE: if (subProcIds != null && subProcIds.length > 0) { storeTracker.delete(subProcIds); holdingCleanupTracker.setDeletedIfModified(subProcIds); } else { storeTracker.delete(procId); holdingCleanupTracker.setDeletedIfModified(procId); } break; default: throw new RuntimeException("invalid push type " + type); } }
@Test public void testBasicCRUD() { ProcedureStoreTracker tracker = new ProcedureStoreTracker(); assertTrue(tracker.isEmpty()); long[] procs = new long[] { 1, 2, 3, 4, 5, 6 }; tracker.insert(procs[0]); tracker.insert(procs[1], new long[] { procs[2], procs[3], procs[4] }); assertFalse(tracker.isEmpty()); assertTrue(tracker.isAllModified()); tracker.resetModified(); assertFalse(tracker.isAllModified()); for (int i = 0; i < 4; ++i) { tracker.update(procs[i]); assertFalse(tracker.isEmpty()); assertFalse(tracker.isAllModified()); } tracker.update(procs[4]); assertFalse(tracker.isEmpty()); assertTrue(tracker.isAllModified()); tracker.update(procs[5]); assertFalse(tracker.isEmpty()); assertTrue(tracker.isAllModified()); for (int i = 0; i < 5; ++i) { tracker.delete(procs[i]); assertFalse(tracker.isEmpty()); assertTrue(tracker.isAllModified()); } tracker.delete(procs[5]); assertTrue(tracker.isEmpty()); }
public void update(long procId) { update(null, procId); }
public void update(long procId) { update(null, procId); }
public void insert(long procId, long[] subProcIds) { BitSetNode node = update(null, procId); for (int i = 0; i < subProcIds.length; ++i) { node = insert(node, subProcIds[i]); } }
public void insert(final long procId, final long[] subProcIds) { BitSetNode node = null; node = update(node, procId); for (int i = 0; i < subProcIds.length; ++i) { node = insert(node, subProcIds[i]); } }
public void insert(final long procId, final long[] subProcIds) { update(procId); for (int i = 0; i < subProcIds.length; ++i) { insert(subProcIds[i]); } }
private void updateStoreTracker(final PushType type, final long procId, final long[] subProcIds) { switch (type) { case INSERT: if (subProcIds == null) { storeTracker.insert(procId); } else { storeTracker.insert(procId, subProcIds); } break; case UPDATE: storeTracker.update(procId); break; case DELETE: storeTracker.delete(procId); break; default: throw new RuntimeException("invalid push type " + type); } }
private void updateStoreTracker(final PushType type, final long procId, final long[] subProcIds) { switch (type) { case INSERT: if (subProcIds == null) { storeTracker.insert(procId); } else if (procId == Procedure.NO_PROC_ID) { storeTracker.insert(subProcIds); } else { storeTracker.insert(procId, subProcIds); holdingCleanupTracker.setDeletedIfModified(procId); } break; case UPDATE: storeTracker.update(procId); holdingCleanupTracker.setDeletedIfModified(procId); break; case DELETE: if (subProcIds != null && subProcIds.length > 0) { storeTracker.delete(subProcIds); holdingCleanupTracker.setDeletedIfModified(subProcIds); } else { storeTracker.delete(procId); holdingCleanupTracker.setDeletedIfModified(procId); } break; default: throw new RuntimeException("invalid push type " + type); } }
private void updateStoreTracker(final PushType type, final long procId, final long[] subProcIds) { switch (type) { case INSERT: if (subProcIds == null) { storeTracker.insert(procId); } else if (procId == Procedure.NO_PROC_ID) { storeTracker.insert(subProcIds); } else { storeTracker.insert(procId, subProcIds); holdingCleanupTracker.setDeletedIfSet(procId); } break; case UPDATE: storeTracker.update(procId); holdingCleanupTracker.setDeletedIfSet(procId); break; case DELETE: if (subProcIds != null && subProcIds.length > 0) { storeTracker.delete(subProcIds); holdingCleanupTracker.setDeletedIfSet(subProcIds); } else { storeTracker.delete(procId); holdingCleanupTracker.setDeletedIfSet(procId); } break; default: throw new RuntimeException("invalid push type " + type); } }
/** * @param active list of active proc ids. To mark them as non-deleted, since by default a proc * id is always marked deleted. */ ProcedureStoreTracker buildTracker(long[] active, long[] updated, long[] deleted) { ProcedureStoreTracker tracker = new ProcedureStoreTracker(); for (long i : active) { tracker.insert(i); } tracker.resetUpdates(); for (long i : updated) { tracker.update(i); } for (long i : deleted) { tracker.delete(i); } return tracker; }
@Test public void testBasicCRUD() { ProcedureStoreTracker tracker = new ProcedureStoreTracker(); assertTrue(tracker.isEmpty()); long[] procs = new long[] { 1, 2, 3, 4, 5, 6 }; tracker.insert(procs[0]); tracker.insert(procs[1], new long[] { procs[2], procs[3], procs[4] }); assertFalse(tracker.isEmpty()); assertTrue(tracker.isUpdated()); tracker.resetUpdates(); assertFalse(tracker.isUpdated()); for (int i = 0; i < 4; ++i) { tracker.update(procs[i]); assertFalse(tracker.isEmpty()); assertFalse(tracker.isUpdated()); } tracker.update(procs[4]); assertFalse(tracker.isEmpty()); assertTrue(tracker.isUpdated()); tracker.update(procs[5]); assertFalse(tracker.isEmpty()); assertTrue(tracker.isUpdated()); for (int i = 0; i < 5; ++i) { tracker.delete(procs[i]); assertFalse(tracker.isEmpty()); assertTrue(tracker.isUpdated()); } tracker.delete(procs[5]); assertTrue(tracker.isEmpty()); }
@Test public void testBasicCRUD() { ProcedureStoreTracker tracker = new ProcedureStoreTracker(); assertTrue(tracker.isEmpty()); long[] procs = new long[] { 1, 2, 3, 4, 5, 6 }; tracker.insert(procs[0]); tracker.insert(procs[1], new long[] { procs[2], procs[3], procs[4] }); assertFalse(tracker.isEmpty()); assertTrue(tracker.isAllModified()); tracker.resetModified(); assertFalse(tracker.isAllModified()); for (int i = 0; i < 4; ++i) { tracker.update(procs[i]); assertFalse(tracker.isEmpty()); assertFalse(tracker.isAllModified()); } tracker.update(procs[4]); assertFalse(tracker.isEmpty()); assertTrue(tracker.isAllModified()); tracker.update(procs[5]); assertFalse(tracker.isEmpty()); assertTrue(tracker.isAllModified()); for (int i = 0; i < 5; ++i) { tracker.delete(procs[i]); assertFalse(tracker.isEmpty()); assertTrue(tracker.isAllModified()); } tracker.delete(procs[5]); assertTrue(tracker.isEmpty()); }