@Override
	public int[] getComponentPath() {
		if (path == null) {
			path = new int[level];
			int parentLevel = level - 1;
			path[parentLevel--] = indexInParent;

			Data parentData = parent;
			while (parentData instanceof PseudoDataComponent) {
				PseudoDataComponent dc = (PseudoDataComponent) parentData;
				path[parentLevel--] = dc.indexInParent;
				parentData = dc.parent;
			}
		}
		return path;
	}
<code>DataComponent</code> provides Data and CodeUnit access to Struct and Array components.

NOTE!! DataComponents only have a unique key within its parent Struct/Array.  This places a constraint on
the use of the key field and getKey() method on the underlying classes CodeUnitDB and DataDB.
The CodeUnit key should only be used for managing an object cache.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/PseudoDataComponent.java