@Override
	default <T> void setProperty(String name, Class<T> valueClass, T value) {
		try (LockHold hold = LockHold.lock(getTrace().getReadWriteLock().writeLock())) {
			TracePropertyMap<? super T> map = getTrace().getInternalAddressPropertyManager()
					.getOrCreatePropertyMapSuper(name, valueClass);
			TracePropertyMapSpace<? super T> space = map.getPropertyMapSpace(getTraceSpace(), true);
			space.set(getLifespan(), getAddress(), value);
		}
	}
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