private CompositeDB getCompositeBaseType(DataType dt) {
		while ((dt instanceof Array) || (dt instanceof TypeDef)) {
			if (dt instanceof Array) {
				dt = ((Array) dt).getDataType();
			}
			else {
				dt = ((TypeDef) dt).getBaseDataType();
			}
		}
		return (dt instanceof CompositeDB) ? (CompositeDB) dt : null;
	}
Get composite base type which corresponds to a specified datatype.
Pointers to composites are ignored.  This method is intended to be
used by the {@link #getAllCompositesInPostDependencyOrder} method only.
@param dt datatype
@return base datatype if dt corresponds to a composite or array of composites, 
otherwise null is returned
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/DataTypeManagerDB.java