BusyImpl (@NotNull Set<UiActivity> key) { return new BusyImpl(key, this) { @Override public boolean isReady() { for (Map.Entry<Project, BusyContainer> entry : myObjects.entrySet()) { final BusyContainer eachContainer = entry.getValue(); final BusyImpl busy = eachContainer.getOrCreateBusy(myToWatchArray); if (busy == this) continue; if (!busy.isOwnReady()) return false; } return isOwnReady(); } }; }