public synchronized List<DomainFile> lookupFiles(IndexType keyType, Object keyValue) {
		IndexInfo index = indexes.get(keyType.ordinal());
		Object fileInfo = index.indexedFiles.get(keyValue);
		List<String> fileIds;
		if (fileInfo instanceof String fileIdStr) {
			fileIds = List.of(fileIdStr);
		}
		else if (fileInfo instanceof List fileInfoList) {
			fileIds = fileInfoList;
		}
		else {
			fileIds = List.of();
		}
		return fileIds.stream()
				.map(fileId -> project.getProjectData().getFileByID(fileId))
				.filter(Objects::nonNull)
				.toList();
	}
@param indexType IndexType enum
@param mappingFunc bifunc that returns value that will be used to lookup the file
@param indexedFiles map of index keyvalue to fileId (either string or list of strings)
Ghidra/Features/Base/src/main/java/ghidra/plugin/importer/ProjectIndexService.java