public synchronized T get(DBRecord objectRecord) {
		long key = objectRecord.getKey();
		KeyedSoftReference<T> ref = map.get(key);
		if (ref != null) {
			T obj = ref.get();
			if (obj == null) {
				map.remove(key);
			}
			else {
				if (obj.checkIsValid(objectRecord)) {
					addToHardCache(obj);
					return obj;
				}
				map.remove(key);
			}
		}
		return null;
	}
Retrieves the database object with the given record and associated key from the cache.
This form should be used in conjunction with record iterators to avoid unnecessary
record query during a possible object refresh.  To benefit from the record the cached
object must implement the {@link DatabaseObject#refresh(DBRecord)} method which by default
ignores the record and simply calls {@link DatabaseObject#refresh()}.
@param objectRecord the valid record corresponding to the object to be retrieved and possibly
used to refresh the associated object if found in cache
@return the cached object or null if the object with that key is not currently cached.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/DBObjectCache.java