public <T extends DataType> T getType(String name, Class<T> clazz) {
		DataType dataType = findType(name, programSearchCPs, programDTM);
		if (dataType == null && archiveDTM != null) {
			dataType = findType(name, archiveSearchCPs, archiveDTM);
			if (dataType != null) {
				dataType = programDTM.resolve(dataType, DWARFDataTypeConflictHandler.INSTANCE);
			}
		}
		if (dataType == null) {
			dataType =
				BuiltInDataTypeManager.getDataTypeManager().getDataType(CategoryPath.ROOT, name);
		}
		return clazz.isInstance(dataType) ? clazz.cast(dataType) : null;
	}
Returns a named {@link DataType}, searching the registered 
{@link #addProgramSearchCategoryPath(CategoryPath...) program}
and {@link #addArchiveSearchCategoryPath(CategoryPath...) archive} category paths.
<p>
DataTypes that were found in the attached archive gdt manager will be copied into the
program's data type manager before being returned.

@param <T> DataType or derived type
@param name {@link DataType} name
@param clazz expected DataType class
@return DataType or null if not found
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/structmapping/DataTypeMapper.java