private Program getCachedRemoteProgram(String urlString, Set<Program> openedPrograms) {
		ProgramManager service = tool.getService(ProgramManager.class);

		try {
			URL url = new URL(urlString);
			Program remote = service.openCachedProgram(url, this);
			if (remote == null) {
				return null;
			}
			if (!openedPrograms.add(remote)) {
				// The service added 'this' as a consumer. We previously opened it and we don't
				// want the program to have the same consumer twice.
				remote.release(this);
			}
			return remote;
		}
		catch (MalformedURLException exc) {
			return null;
		}
	}
ComponentProvider for displaying BSim Similar Functions Search results.
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/gui/search/results/BSimSearchResultsProvider.java