@Override
	default <T> T getProperty(String name, Class<T> valueClass) {
		try (LockHold hold = LockHold.lock(getTrace().getReadWriteLock().readLock())) {
			TracePropertyMap<? extends T> map = getTrace().getInternalAddressPropertyManager()
					.getPropertyMapExtends(name, valueClass);
			if (map == null) {
				return null;
			}
			TracePropertyMapSpace<? extends T> space =
				map.getPropertyMapSpace(getTraceSpace(), false);
			if (space == null) {
				return null;
			}
			return space.get(getStartSnap(), getAddress());
		}
	}
A base interface for implementations of {@link TraceCodeUnit}

<p>
This behaves somewhat like a mixin, allowing it to be used on code units as well as data
components, e.g., fields of a struct data unit.
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/listing/DBTraceCodeUnitAdapter.java