public Icon getIcon(String fileName, List<Icon> overlays) {
		fileName = fileName.toLowerCase();
		String ext = FSUtilities.getExtension(fileName, 1);
		if (ext != null) {
			String iconId = EXTENSION_ICON_PREFIX + ext;
			if (Gui.hasIcon(iconId)) {
				Icon base = new GIcon(iconId);
				return buildIcon(base, overlays);
			}
		}

		for (String substring : substringToIconMap.keySet()) {
			if (fileName.indexOf(substring) != -1) {
				return buildIcon(substringToIconMap.get(substring), overlays);
			}
		}

		// return default icon for generic file
		return buildIcon(DEFAULT_ICON, overlays);
	}
Returns an {@link Icon} that represents a file's content based on its
name.

@param fileName name of file that an icon is being requested for.
@param overlays optional list of overlay icons that
           should be overlaid on top of the base icon. These icons represent a
           status or feature independent of the file's base icon.
@return {@link Icon} instance that best represents the named file, never
        null.
Ghidra/Features/Base/src/main/java/ghidra/plugins/fsbrowser/FSBIcons.java