public FSRL getProgramProviderFSRL(FSRL fsrl) {
		if (fsRef != null) {
			GFileSystem fs = fsRef.getFilesystem();
			if (fs instanceof GFileSystemProgramProvider programProviderFS) {
				try {
					GFile gfile = fs.lookup(fsrl.getPath());
					if (gfile != null && programProviderFS.canProvideProgram(gfile)) {
						return fsrl;
					}
				}
				catch (IOException e) {
					// ignore error and fall thru
				}
			}
		}
		return null;
	}
A GTreeNode that represents the root of a {@link GFileSystem}, and keeps the
filesystem pinned in memory with its {@link FileSystemRef}.
<p>
The {@link FileSystemRef} is released when this node is {@link #dispose()}d.
<p>
Since GTreeNodes are cloned during GTree filtering, and this class has a reference to an external
resource that needs managing, this class needs to keeps track of the original modelNode
and does all state modification using the modelNode's context.
Ghidra/Features/Base/src/main/java/ghidra/plugins/fsbrowser/FSBRootNode.java