public static LoaderMap getSupportedLoadSpecs(ByteProvider provider,
			Predicate<Loader> loaderFilter) {
		LoaderMap loaderMap = new LoaderMap();
		for (Loader loader : getAllLoaders()) {
			if (loaderFilter.test(loader)) {
				try {
					Collection<LoadSpec> loadSpecs = loader.findSupportedLoadSpecs(provider);
					if (loadSpecs != null && !loadSpecs.isEmpty()) { // shouldn't be null, but protect against rogue loaders
						loaderMap.put(loader, loadSpecs);
					}
				}
				catch (IOException e) {
					// file not applicable for loader
				}
				catch (RuntimeException e) {
					Msg.error(LoaderService.class,
						"Unexpected Loader exception from " + loader.getName(), e);
				}
			}
		}
		return loaderMap;
	}
Gets all supported {@link LoadSpec}s for loading the given {@link ByteProvider}.

@param provider The {@link ByteProvider} to load.
@param loaderFilter A {@link Predicate} that will filter out undesired {@link Loader}s.
@return All supported {@link LoadSpec}s in the form of a {@link LoaderMap}.
Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/LoaderService.java