protected DomainFile findLibraryInProject(String library, DomainFolder rootSearchFolder,
			List<LibrarySearchPath> searchPaths, List<Option> options, TaskMonitor monitor)
			throws CancelledException {
		if (rootSearchFolder == null) {
			return null;
		}

		// Lookup by full project path
		// NOTE: probably no need to support optional extensions and case-insensitivity for this case
		String projectPath = joinPaths(rootSearchFolder.getPathname(), library);
		ProjectData projectData = rootSearchFolder.getProjectData();
		DomainFile ret = projectData.getFile(projectPath);
		if (ret != null) {
			return ret;
		}

		// Quick lookup by library filename (ignoring full library path) in given folder.
		// We try this first to hopefully avoid needing to iterate over the files in the folder
		// factoring in case and extensions
		String libraryName = FilenameUtils.getName(library);
		if ((ret = rootSearchFolder.getFile(libraryName)) != null) {
			return ret;
		}

		// Factoring in case and optional file extensions, iterate over given folder looking for
		// a match
		boolean noExtension = FilenameUtils.getExtension(libraryName).equals("");
		Comparator<String> comparator = getLibraryNameComparator();
		for (DomainFile file : rootSearchFolder.getFiles()) {
			String candidateName = file.getName();
			if (isOptionalLibraryFilenameExtensions() && noExtension) {
				candidateName = FilenameUtils.getBaseName(candidateName);
			}
			if (comparator.compare(candidateName, libraryName) == 0) {
				return file;
			}
		}

		return null;
	}
Find the library within the specified {@link DomainFolder root search folder}.  This method 
will handle relative path normalization.
<p>
If the library path is a simple name without any path separators, only the given folder 
will be searched.
<p>
If the library path has a path, it will be treated as a relative path under
given folder and if found that {@link DomainFile} will be returned.
<p>
If the library path has a path and it wasn't found under the given folder, the
filename part of library path will be used to search the given folder for matches.

@param library library to find
@param rootSearchFolder {@link DomainFolder root folder} within which imported libraries will
  be searched. If null this method will return null.
@param searchPaths A {@link List} of {@link LibrarySearchPath}s that will be searched
@param options The load options
@param monitor A cancelable task monitor
@return The found {@link DomainFile} or null if not found
@throws CancelledException if the user cancelled the load
Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/AbstractLibrarySupportLoader.java