public synchronized T computeIfAbsent(long key, Function<Long, T> mappingFunction) {
		Objects.requireNonNull(mappingFunction);
		T oldValue = get(key);
		if (oldValue != null) {
			return oldValue;
		}
		T newValue = mappingFunction.apply(key);
		if (newValue != null) {
			put(key, newValue);
		}
		return newValue;
	}
Get the current cached object which corresponds to specified {@code key} if contained in
cache, otherwise the {@code mappingFunction} will be invoked to instantiate a new object
where that object will be added to the cache and returned.  If the {@code mappingFunction}
returns null nothing will be added to the cache and null will be returned by this method.

@param key object key
@param mappingFunction function used to obtain a new object if not currently present
in cache.
@return cached object
Ghidra/Framework/Generic/src/main/java/ghidra/util/datastruct/ObjectCache.java