docs: @Override
  	public boolean retainAll(Collection<?> collection) {
  		if (dao == null) {
  			return false;
  		}
  		boolean changed = false;
  		CloseableIterator<T> iterator = closeableIterator();
  		try {
  			while (iterator.hasNext()) {
  				T data = iterator.next();
  				if (!collection.contains(data)) {
  					iterator.remove();
  					changed = true;
  				}
  			}
  			return changed;
  		} finally {
  			IOUtils.closeQuietly(iterator);
  		}
  	}