static DependentCache> allWebsByID_cache = new DependentCache(f allWebsByID_calc, f cachedNodeIndex /*_changeCount*/); static SmallestListMultiMap allWebsByID() { ret allWebsByID_cache!; } static SmallestListMultiMap allWebsByID_calc() { setAdd(postSoftwareMadeWeb_onNewWeb, f allWebsByID_onNewWeb); onTransientWebAdded_do(f allWebsByID_onNewWeb); onTransientWebRemoved_do(f allWebsByID_onRemovedWeb); ret smallestListMultiMapIndexByMethod(allWebsFromCachedNodeIndex_uncached(), 'globalIDObj); } 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.globalIDObj(), web); } svoid allWebsByID_onRemovedWeb(Web web) { lock allWebsByID_cache.lock; if (allWebsByID_cache! != null) allWebsByID_cache->remove(web.globalIDObj()); }