@Override
	default DBTraceDefinedDataAdapter getPrimitiveAt(int offset) {
		// We may write to the cache
		try (LockHold hold = LockHold.lock(getTrace().getReadWriteLock().writeLock())) {
			if (offset < 0 || offset >= getLength()) {
				return null;
			}
			DBTraceDefinedDataAdapter component = getComponentAt(offset);
			if (component == null || component == this) {
				return this;
			}
			return component.getPrimitiveAt(offset - component.getParentOffset());
		}
	}
TODO: Document me

Note this will always be called with the write lock

@return the new or existing component cache
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/listing/DBTraceDefinedDataAdapter.java