static DependentCache> allWebsByID_cache = new DependentCache(f allWebsByID_calc, f cachedNodeIndex /*_changeCount*/); static MultiMap allWebsByID() { ret allWebsByID_cache!; } static MultiMap allWebsByID_calc() { setAdd(postSoftwareMadeWeb_onNewWeb, f allWebsByID_onNewWeb); onTransientWebAdded_do(f allWebsByID_onNewWeb); onTransientWebRemoved_do(f allWebsByID_onRemovedWeb); ret multiMapIndexByField(allWebsFromCachedNodeIndex_uncached(), 'globalID); } svoid allWebsByID_onNewWeb(Web web, O[] params) { allWebsByID_onNewWeb(web); } svoid allWebsByID_onNewWeb(Web web) { lock allWebsByID_cache.lock; if (allWebsByID_cache != null) allWebsByID_cache->put(web.globalID, web); } svoid allWebsByID_onRemovedWeb(Web web) { lock allWebsByID_cache.lock; if (allWebsByID_cache != null) allWebsByID_cache->remove(web.globalID); }