@Override
		public boolean executeInBulk(List<AddressableRowObject> rowObjects,
				List<AddressableRowObject> deleted, TaskMonitor monitor) {

			for (AddressableRowObject rowObject : rowObjects) {
				if (monitor.isCancelled()) {
					break;
				}

				if (testDecision.decide(rowObject)) {
					deleted.add(rowObject);
				}

				if (!dialog.contains(rowObject)) {
					// this simulates the handling of the case where we remove items arbitrarily
					// while processing items in this list
					continue;
				}

				callbacks.merge(rowObject, new AtomicInteger(1), (k, v) -> {
					v.incrementAndGet();
					return v;
				});
			}

			return true;
		}
Interface for tests to signal what is expected of the executor
Ghidra/Features/Base/src/test.slow/java/ghidra/app/tablechooser/TableChooserDialogTest.java