@Override
	public Data getComponentContaining(int offset) {
		if (offset < 0 || offset > length) {
			return null;
		}

		if (baseDataType instanceof Array) {
			Array array = (Array) baseDataType;
			int elementLength = array.getElementLength();
			int index = offset / elementLength;
			return getComponent(index);
		}
		else if (baseDataType instanceof Structure) {
			Structure struct = (Structure) baseDataType;
			DataTypeComponent dtc = struct.getComponentContaining(offset);
			return (dtc != null) ? getComponent(dtc.getOrdinal()) : null;
		}
		else if (baseDataType instanceof DynamicDataType) {
			DynamicDataType ddt = (DynamicDataType) baseDataType;
			DataTypeComponent dtc = ddt.getComponentAt(offset, this);
			return (dtc != null) ? getComponent(dtc.getOrdinal()) : null;
		}
		else if (baseDataType instanceof Union) {
			// TODO: Returning anything is potentially bad
			//return getComponent(0);
		}
		return null;
	}
"Fake" data generated by the PseudoDisassembler.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/PseudoData.java